Я пытаюсь воспроизвести видео, загруженное с cloudkit. Я использую тот же метод запроса, который я использую для загрузки изображения:ios swift play video uploaded from cloudkit
publicData.performQuery(query, inZoneWithID: nil) { results, error in
if error == nil { // There is no error
for cafe in results! {
let newCafe = Cafe()
newCafe.address = cafe["address"] as? String
newCafe.name = cafe["name"] as? String
newCafe.email = cafe["email"] as? String
newCafe.description = cafe["description"] as? String
newCafe.location = cafe["location"] as? CLLocation
newCafe.cafeImage = cafe["cafeImage"] as? CKAsset
newCafe.offer_wifi = cafe["offer_wifi"] as? Bool
newCafe.smoking_area = cafe["smoking_area"] as? Bool
newCafe.cafeVideo = cafe["video"] as? CKAsset // <== I want to use this
self.cafes.append(newCafe)
let defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
defaults.setInteger(self.cafes.count, forKey: "PreviousCafeCount")
dispatch_async(dispatch_get_main_queue(), {() -> Void in
self.tableView.reloadData()
Spinner.sharedLoader.hideLoading()
})
внутри cafeDetailViewController, я создаю кнопку, триггер, играя в видео с помощью AVPlayer. AVKit и AVFoundation уже импортированы.
@IBAction func playVideo(sender: AnyObject) {
if let file = cafeDetail.cafeVideo {
let player = AVPlayer(URL: file.fileURL)
let playerController = AVPlayerViewController()
playerController.player = player
self.addChildViewController(playerController)
self.view.addSubview(playerController.view)
playerController.view.frame = self.view.frame
player.play()
}
}
следить за вопрос: как я могу реализовать модель объединения в стрижа? Аналогично has_many и принадлежит к ассоциации в рельсах. Я не думаю, что загрузка всего видео заранее является хорошим решением.
благодарит! это полностью сработало. –