2016-02-22 299 views
-1

當我點擊播放視頻時,它會顯示像這樣。想知道爲什麼。沒有顯示錯誤。我沒有導入AVKit和AVFoundation。另外,我在我的設備和模擬器中進行了測試。仍然不起作用。有什麼建議麼?非常感謝。無法用Swift播放視頻使用AVPlayer

enter image description here

**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 
+0

請不要張貼您的問題多次。 – JAL

+0

我很抱歉傢伙。但是,這個問題讓我非常沮喪。 –

回答

1

你看和閱讀本文件...

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

。您確定要保存的數據作爲一部電影,而不是也許作爲一個形象呢?瘋狂的猜測?

我似乎記得一個新的文章,說parse.com正在被關閉,所以也許這不是一個好主意,反正使用它...

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

+0

是的。我想我忘了添加.mov添加命名文件的結尾。我只是試圖從Parse下載視頻。它不能玩。但是,一旦我在最後添加.mov,它就完美了。而且,我也嘗試手動重新上傳,它可以使用模擬器進行播放。將嘗試在我的手機中測試它今晚。 –