Я создаю приложение, которое поддерживает воспроизведение файлов hls (.m3u8) в среде Mac OS, и я только что узнал, что AVFoundation доступен только для Mac OS 10.7 и выше.
Итак, я остался с QTKit.
В документации Apple по HLS говорится, что HLS можно воспроизводить в Mac OS с использованием фреймворков AVFoundation и QTKit. (Ну, они использовали слово «И»… и я надеюсь, что только QTKit может воспроизводить файлы m3u8 --- поскольку проигрыватель QuickTime X хорошо их воспроизводит)
В любом случае, я изменил пример кода MyMediaPlayer от Apple, чтобы вместить файлы .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 --> который я сделал с помощью MediaFileSegmenter от Apple.
Скажите, пожалуйста, может ли одна структура QTKit воспроизводить файлы HLS. И если может, то что я делаю не так?