2017-01-13 17 views
0

私のプロジェクトにDemoVideo.mp4を追加し、それをリソースファイルのコピーに追加しました。しかし、私はアプリを実行すると、私のビデオを再生しません。 私の方法です。AVPlayerViewControllerはローカルビデオを再生しません

private func setUpAndPlayVideo() { 
     guard let videoPath = Bundle.main.path(forResource: "DemoVideo.mp4", ofType: nil) else { 
      return 
     } 
     let videoURL = NSURL(string: videoPath) 
     let player = AVPlayer(url: videoURL! as URL) 
     playerViewController = AVPlayerViewController() 
     playerViewController.player = player 
     playerViewController.view.frame = self.videoPlayerView.bounds 
     self.videoPlayerView.addSubview(playerViewController.view) 
     playerViewController.showsPlaybackControls = false 
     playerViewController.player?.play() 
} 

私はviewDidAppearメソッドでこのメソッドを呼び出していますが、これを表示しています。 Screenshot

+0

は '' videoPath有効なパス...あなたがnilのためにチェックしましたされていることを確認してください。 –

+0

私はビデオパスもチェックしており、ビデオはそのディレクトリにあります。 "/Users/MyMac/Library/Developer/CoreSimulator/Devices/7237C529-CDE9-461C-BFE0-7EAF040DFE01/data/Containers/Bundle/Application/F452FD6B-2CEF-4704-B2E6-94F9F1662CAA/AlerisX.app/DemoVideo.mp4 " –

+0

はNSURLで変換されますか? 'videoURL!を印刷しよう! ' –

答えて

1
let path : String = Bundle.main.path(forResource: "charlie", ofType: "mp4")! 
let movieurl : URL = URL(fileURLWithPath: path) 
let movie : AVPlayerViewController = AVPlayerViewController() 
movie.view.frame = self.view.bounds 

let player : AVPlayer = AVPlayer(url: movieurl) 
movie.player = player 

self.view.addSubview(movie.view) 
player.play() 
+0

ヒント:すぐに 'Bundle.main.url'をすぐに使ってください。 – Moritz

+0

@EricAya提案していただきありがとうございます。 –

関連する問題