2016-12-13 26 views
0

AVPlayerにローカルファイルであるm3u8プレイリストを再生させようとしています。AVPlayerがローカルファイルからm3u8を再生しない

私はAppleのサンプルプレイリストのいずれかを使用して簡単なテストケースにこれを絞られている:私は、リモートのURLからこのプレイリストを再生

https://tungsten.aaplimg.com/VOD/bipbop_adv_fmp4_example/master.m3u8 

場合、AVPlayerは、この罰金を果たしています。しかし、このプレイリストをローカルファイルにダウンロードし、AVPlayerにローカルファイルURLを渡すと、AVPlayerはそれを再生しません。それは、クロスアウトされたプレイシンボルを表示するだけです。

興味深いことに、これはSafariでも複製できます。 Safariはリモートプレイリストを再生しますが、ローカルファイルは再生しません。また、AVPlayerのこの動作は、MacOS 10.12.1と同様にiOS 10.2でも同じです。また、mp4メディアファイルを直接再生する(プレイリストにラップされていない)場合は、リモートURLとローカルファイルの両方から再生されるので、この問題はないようです。 AVPlayerItem.errorの検査

は、いずれかの便利なものにはならない:

An unknown error occurred (-12865) 
The operation could not be completed 

はAVPlayerは、ローカルプレイリストを再生しないことを何ら制限を認識して誰ですか?

ありがとうございます。

答えて

2

m3u/m3u8ファイルはサーバーに保存し、再生するためにストリーミングする必要があります(私はそれが妥当ではないと知っていますが、アップルは再びそれを行いました)。 HLSを使用する必要があります。これは基本的に、ファイルをサーバーに格納し、そこから直接アクセスする必要があることを意味します。 のようなフレームワークを使用して、アプリケーション内にローカルサーバーを作成することもできます。

1

iOS 10以降、AVAssetDownloadURLSessionを使用してHLSストリームをダウンロードできます。これにより、オフラインで再生できるローカルアセットパスが生成されます。

あなたのアプリバンドルに動画を埋め込む場合は、MP4を作成する方がよいでしょう。

+0

mp3にm3u8を作成するには? –

関連する問題