我創建了一個支持在Mac OS環境中播放hls文件(.m3u8)的應用程序,並且我剛剛發現AVFoundation僅適用於Mac OS 10.7以上。在MacOS中使用QTKit播放HLS(.m3u8)10.6.8
所以,我已經離開了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文件。 如果可以,我做錯了什麼?
您是否嘗試在播放列表文件中使用絕對地址?我想不出有什麼不好的理由。 另一方面,如果http不是傳遞機制,那麼使用HLS就沒有太多意義。 – vipw
是的,我曾嘗試把絕對URLS。但是,這些也不起作用。您確實需要爲您的播放列表文件提供http服務器。 – mltpyt