1

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 ファイルを再生できるか教えてください。可能であれば、何が間違っていますか?

4

1 に答える 1

1

OK、ディレクトリにローカルにある m3u8 ファイルにアクセスしていることに気付きました。これは HLS であるため、プレイリスト ファイルを提供するための http サーバーが必要です。

私の以前の絶対URLは file://localhost/Users/guest/Desktop/Music/stream01/index.m3u8

QTKit は、独自のサーバーを立ち上げ、プレイリスト ファイルのパスを次のように変更した後に機能します。 http://192.168.0.XX/stream01/index.m3u8

QTKit (Quick Time X Player に採用) は次のことができます。

  1. .m3u8 ファイルを再生します (http サーバーによって提供される場合)

  2. AES-128 で暗号化された .ts/.aac/.mp3 ファイルを .m3u8 で再生 (ビデオとオーディオ)

それは最終的に動作します!ええ!

于 2012-07-05T00:12:44.130 に答える