2017-02-21 55 views
1

每當我運行該項目時,它會拉起視頻播放器,但視頻不播放  (the code and error)。 我該如何解決這個問題?如果畫面中的代碼是不夠清楚,這裏是代碼:使用Avplayer/kit播放本地視頻問題

import UIKit 
import AVKit 
import AVFoundation 


class ViewController: UIViewController { 

    let avPlayerViewController = AVPlayerViewController() 
    var avPlayer:AVPlayer? 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from nib. 

     let urlPathString = Bundle.main.path(forResource: "small", ofType: "mp4") 

     if urlPathString != nil { 

      let movieUrl = NSURL(fileURLWithPath: "/Users/kevingerman/Desktop/Pioneer News Season 2 Episode 1.mp4") 

      self.avPlayer = AVPlayer(url: movieUrl as URL) 
      self.avPlayerViewController.player = self.avPlayer 

     } 
    } 



    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


    @IBAction func playButtonTapped(_ sender: AnyObject) { 
     //Trigger the video to play 
     self.present(self.avPlayerViewController, animated: true) {() -> Void in self.avPlayerViewController.player?.play() } 


    } 

}

+0

是包含在你的項目中的電影文件? 打開Project Navigator(cmd - 1) 然後選擇您的項目根目錄>您的目標>構建階段>複製包資源。 你的視頻必須在這裏。如果不是,那麼你應該使用加號按鈕來添加它 – cpatmulloy

+0

爲什麼你檢查字符串'urlPathString'爲零,然後爲AVPlayer添加另一個URL? –

回答

0

確保您urlPathString不爲零。 我不知道下面的代碼的意思是:

let movieUrl = NSURL(fileURLWithPath: "/Users/kevingerman/Desktop/Pioneer News Season 2 Episode 1.mp4") 

我覺得模擬器不能得到這在你的Mac文件的路徑(我不知道,我還沒有做到這一點) 。 您可以檢查文件的目標成員資格。

enter image description here

的代碼可以像這樣工作:在意見建議

var urlPaht = Bundle.main.url(forResource: "small", withExtension:"mp4") 
if urlPaht == nil { 
     urlPaht = NSURL(fileURLWithPath: "/Users/kevingerman/Desktop/Pioneer News Season 2 Episode 1.mp4") 
} 
self.avPlayer = AVPlayer(url: movieUrl as URL) 
self.avPlayerViewController.player = self.avPlayer 
1

的解決方案,以及一個@Guan已回答都是正確的。

urlPathString實際上是零這裏,

要使其發揮作用 -

1-要麼添加目標會員,作爲建議的評論及以上的答案或

請執行以下操作:

1.1-從bundle中刪除small.mp4,確保你move it to trash

2.1 - 轉到垃圾和阻力,並再次放下你的MP4文件到項目中,你會得到這樣的窗口 - 儘管其添加 Window on drag and drop

回請確保您 -

檢查projectTarget複選框像下面的截圖 -

Checked box for app target

確保文件名是small.mp4