2017-02-21 10 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

small.mp4であることを確認してくださいは、ムービーファイルがプロジェクトに含まれますか? Project Navigator(cmd-1) を開き、プロジェクトルート>ターゲット>ビルド段階>バンドルリソースのコピーを選択します。 あなたのビデオはここにいる必要があります。そうでない場合は、プラスボタンを使用して追加する必要があります – cpatmulloy

+0

なぜ 'urlPathString'の文字列をnilにチェックしてから、別のURLをAVPlayerに追加するのですか? –

答えて

0

あなたurlPathStringがnilでないことを確認してください。 私は何を次のコードの平均知らない:私はシミュレータは、お使いのMacでファイルのパスを取得することはできませんだと思う

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

(私は前にこれを実行していない、わかりません)。 。 ファイルのターゲットメンバーシップを確認できます。

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

ソリューションはコメントで提案、および1 @Guanは両方とも正しい答えました。

あなたurlPathStringはそれを動作させるために、ここではnilを実際に

である - のいずれかを

の1-コメントと

上記または

の回答で提案されているように、ターゲットのメンバーシップを追加以下を実行してください

1.1-バンドルからsmall.mp4を削除し、あなたはこのようなウィンドウを取得します、ゴミとドラッグに移動し、再度プロジェクトにあなたのmp4ファイルをドロップ - - Window on drag and drop

あなたを確認して戻ってそれを追加する際に -

あなた move it to trash

2.1を確認してください

Checked box for app target

-

は、下のスクリーンショットのようなprojectTarget]チェックボックスをオンにします

ファイル名が

関連する問題