Невозможно воспроизвести видео с помощью AVPlayer со Swift

Когда я нажимаю, чтобы воспроизвести видео, оно выглядит так. Интересно, почему. Ошибка не отображается. Я импортировал AVKit и AVFoundation. Кроме того, я тестировал на своем устройстве и симуляторе. Все еще не работает. Какие-либо предложения? Большое спасибо.

введите здесь описание изображения

**Print log**
    //<PFFile: 0x79d472f0>
    //https://files.parsetfss.com/d9cdffff-4a1f-4bd9-b6ee-e60c07d49236/tfss-7e1636b9-5701-4737-9fa6-10609aec89e8-adsVido
    //<AVPlayer: 0x786f39b0>

// Click cell to play video.
    func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
        if adsVideoArray[indexPath.row] != nil {
            let theVideo:PFFile = adsVideoArray[indexPath.row]!
            print(theVideo)
            let url:NSURL = NSURL(string: theVideo.url!)!
            theVideo.getDataInBackgroundWithBlock({ (data:NSData?, error: NSError?) -> Void in
                if error == nil {
                    let player = AVPlayer(URL: url)
                    print(url)
                    print(player)
                    let playerController = AVPlayerViewController()
                    playerController.player = player
                    self.presentViewController(playerController, animated: true) {
                        player.play()
                    }
                }
            })
        }
    }

// load data from parse
    func loadAdsFromParse() {
        adsVideoArray.removeAll(keepCapacity: false)
        let query = PFQuery(className: "user_ads")
        query.findObjectsInBackgroundWithBlock({ (objects: [PFObject]?, error: NSError?) -> Void in
            for object in objects! {
                self.adsVideoArray.append(object.objectForKey("video") as? PFFile)
            }
            dispatch_async(dispatch_get_main_queue()) {
                self.adsCollectionView.reloadData()
            }
        })
    }

// the way to save video
    self.tempVideo = info[UIImagePickerControllerMediaURL] as! NSURL!
    let videoData = NSData(contentsOfFile:self.tempVideo.relativePath!)
    let videoFile:PFFile = PFFile(name:"adsVido", data:videoData!)!
    detailsObj["video"] = videoFile
    detailsObj.saveInBackgroundWithBlock{ ... }

// I tried to play the video before upload it to Parse. It works.
func playImageTapped(pressed: UIGestureRecognizer) {
    let player = AVPlayer(URL: tempVideo)
    let playerController = AVPlayerViewController()
    playerController.player = player
    self.presentViewController(playerController, animated: true) {
        player.play()
    }
}

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
    let mediaType = info[UIImagePickerControllerMediaType] as! NSString
    self.tempVideo = videoAdded

person Pak Ho Cheung    schedule 22.02.2016    source источник
comment
Пожалуйста, не публикуйте свой вопрос несколько раз.   -  person JAL    schedule 23.02.2016
comment
Мне жаль, ребята. Но эта проблема меня очень расстраивает.   -  person Pak Ho Cheung    schedule 23.02.2016


Ответы (1)


Вы смотрели и читали документацию по этому...

https://parse.com/docs/osx/api/Classes/PFFile.html

Вы уверены, что сохраняете свои данные как фильм, а не как изображение? дикая догадка?

Кажется, я припоминаю новую статью, в которой говорилось, что parse.com закрывается, так что, возможно, в любом случае не стоит его использовать...

http://blog.parse.com/announcements/moving-on/

person user3069232    schedule 23.02.2016
comment
Да. Наверное, я забыл добавить .mov добавить конец имени файла. Я только что пытался скачать видео с Parse. Он не может играть. Но как только я добавляю .mov в конце, все работает идеально. И я также пытался перезалить его вручную, он может играть с помощью симулятора. Вечером попробую протестировать на телефоне. - person Pak Ho Cheung; 23.02.2016