Mac OS 環境で hls ファイル (.m3u8) の再生をサポートするアプリを作成していますが、AVFoundation は Mac OS 10.7 以降でしか利用できないことがわかりました。
だから、私はQTKitに残されました。
HLS に関する Apple のドキュメントには、HLS は AVFoundation および QTKit フレームワークを使用して Mac OS で再生できると記載されています。(まあ、彼らは「AND」という言葉を使っていました...そして、QTKitだけでm3u8ファイルを再生できることを願っています---QuickTime Xプレーヤーはそれらをうまく再生します)
とにかく、Apple の MyMediaPlayer サンプル コードを微調整して、.m3u8 ファイルに対応させました。(サンプルコードはこちら: http://developer.apple.com/library/mac/#samplecode/MyMediaPlayer/Introduction/Intro.html#//apple_ref/doc/uid/DTS40009203 )
QTMovie initWithAttributes コード スニペットは次のとおりです。
NSDictionary *attrs = [NSDictionary dictionaryWithObjectsAndKeys:
absoluteURL, QTMovieURLAttribute,
[NSNumber numberWithBool:YES], QTMovieOpenForPlaybackAttribute ,
[NSNumber numberWithBool:YES], QTMovieOpenAsyncRequiredAttribute,
[NSNumber numberWithBool:YES], QTMovieOpenAsyncOKAttribute,
nil];
[self willChangeValueForKey:@"movie"];
mMovie = [[QTMovie alloc] initWithAttributes:attrs error:outError];
[self didChangeValueForKey:@"movie"];
私がプレイしようとしているのはこれです:
prog_index.m3u8 --> Apple の MediaFileSegmenter を使って作成しました。
QTKit フレームワークだけで HLS ファイルを再生できるか教えてください。可能であれば、何が間違っていますか?