Воспроизведение HLS (.m3u8) с помощью QTKit в MacOS 10.6.8

Я создаю приложение, которое поддерживает воспроизведение файлов 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. И если может, то что я делаю не так?


person mltpyt    schedule 04.07.2012    source источник


Ответы (1)


Хорошо, я только что узнал, что обращаюсь к файлам 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 (видео и аудио)

Наконец-то это работает! ЭЙ!

person mltpyt    schedule 05.07.2012
comment
Вы пытались использовать абсолютные URL-адреса в файле списка воспроизведения? Я не могу придумать вескую причину, по которой это не сработает. С другой стороны, нет особого смысла использовать HLS, если http не является механизмом доставки. - person vipw; 05.07.2012
comment
Да, я пытался указать абсолютные URL-адреса. Однако и они не сработают. Вам действительно нужен http-сервер для ваших файлов плейлиста. - person mltpyt; 06.07.2012