2016-10-29 6 views
1

これで3時間も無駄になりましたが、どこが間違っているのか分かりません。AVPlayerを使用してローカルビデオを再生する

AVPlayerを使用してローカルに保存したビデオを再生しようとしています。これは私がプレーヤーを起動する方法です:

- (void)openVideo:(NSURL *)videoURL { 

    NSLog(@"Playing video with the url:\n%@", videoURL); 
    AVPlayer *player = [AVPlayer playerWithURL:videoURL]; 

    AVPlayerViewController *playerViewController = [AVPlayerViewController new]; 
    playerViewController.player = player; 
    [self presentViewController:playerViewController animated:YES completion:nil]; 

} 

そして、これは私が渡しているNSURLです:

​​

を私はopenVideoを実行すると、私が手出力は次のようになります。

Playing video with the url: 
/var/mobile/Containers/Data/Application/72C35DC4-9EF1-4924-91F4-EDA4BDB6AAD3/Documents/sample.vid 

しかし、私は無効なビデオプレーヤーを手に入れています。

enter image description here

私は間違っていますか?

+0

実際に再生しようとしているローカルファイルは 'sample.vid'ですか、この質問にドロップしたコードの名前を変更しましたか?私はAVPlayerがビデオのエンコーディングを決定するために拡張子(例えば、「mov」、「mp4」など)を使用するかもしれないと思う。 –

+0

@MichaelDautermannファイルの名前はここで変更されますが、 'vid'で終わります。私は 'mp4'に改名しようとしましたが、それもうまくいきませんでした。 – Malfunction

+0

拡張子 '.vid'を付けないでください。あなたはそれが '.mp4'ファイルであると確信していますか? MacやモバイルSafariでQuickTimeプレーヤーを使用してファイルを開くことはできますか? –

答えて

2

最後に、問題が分かりました。ファイルをダウンロードしてNSDataとして保存していたので、writeToFileを使用して、正しく読み込むために正しい拡張子を指定していました。

NSString *saveFilePath; = [NSTemporaryDirectory()stringByAppendingPathComponent:@"temp.mp4"]; 

[fileData writeToFile:saveFilePath atomically:YES]; 
NSURL *filepath = [NSURL fileURLWithPath:saveFilePath]; 
AVPlayer *player = [AVPlayer playerWithURL:filepath]; 

これが誰かを助けてくれることを願っています。

関連する問題