2016-04-14 24 views
0

Bir web sunucusundan video dosyası indirmeyi, söz konusu dosyayı belge dizinine kopyalamayı ve AVPlayer ile çalmayı içeren küçük bir proje üzerinde çalışıyorum.Belgeler dizinden AVPlayer ve video

Dosyayı belgeler dizinine indirme işlemi yapılmadı. Dosyayı indirip sorunsuz bir şekilde kaydedebiliyorum. Ancak, dosyayı AVPlayer'a yüklemek söz konusu olduğunda ve bunu bir AVPlayerViewController örneğinde oynatırken, vide denetleyicisi olması gerektiği gibi açılır, ancak video yüklenmez.

Simülatörde test yaparken, projeyi her yeniden oluşturduğunuzda belgeler dizininin değiştiğini fark ediyorum. Bu yüzden, oynatılmadan önce dosyanın mevcut olup olmadığını kontrol ediyorum ve dosyanın mevcut olduğunu bilmeme rağmen hala oynamayı reddediyor. İşte

benim oyuncu kod neye benzediği:

 let fileName = downloadURL.characters.split("/").map(String.init).last as String! 
     let fileNameHD = downloadURLHD.characters.split("/").map(String.init).last as String! 
     let downloadFilePath = getDocumentsDirectory() + "/" + "\(fileNameHD)" 

     let checkValidation = NSFileManager.defaultManager() 

     if checkValidation.fileExistsAtPath(downloadFilePath){ 
      print("video found") 
     } 

     let videoFile = NSURL(string:downloadFilePath) 
     let player = AVPlayer(URL: videoFile!) 
     let playerController = AVPlayerViewController() 
     playerController.player = player 
     playerController.view.frame = self.view.frame 
     player.play() 
     self.presentViewController(playerController, animated: true) { 
      playerController.player!.play() 
     } 

cevap

0

AVPlayer yerine gibi AVPlayerViewController,

let videoURL = NSURL(string: "your url string") 
let player = AVPlayer(URL: videoURL!) 
let playerLayer = AVPlayerLayer(player: player) 
playerLayer.frame = self.view.bounds 
self.view.layer.addSublayer(playerLayer) 
player.play() 

Ve ithalat AVKit, ithalat AVFoundation deneyin.

böyle viewController ile

OR ,

let player = AVPlayer(URL: url) 
let playerController = AVPlayerViewController() 

playerController.player = player 
self.addChildViewController(playerController) 
self.view.addSubview(playerController.view) 
playerController.view.frame = self.view.frame 

player.play() 
İlgili konular