Аварийное завершение работы AVPlayer при воспроизведении зашифрованного материала HLS

У меня возникла проблема, когда я получаю EXC_BAD_ACCESS глубоко в URLConnectionClient при воспроизведении зашифрованных ресурсов HLS, и ключ шифрования пропадает. У MPMovieViewController нет проблем, он просто не воспроизводится, но, как я уже упоминал, у меня происходит сбой, когда AVPlayer не может получить ключи дешифрования.

Например это:

    AVPlayer *player = [[AVPlayer alloc] initWithURL:
        [NSURL URLWithString:@"http://192.168.1.69/prog_index.m3u8"]];

Произойдет сбой в отдельном потоке (в частности, com.apple.coremedia.networkbuffering), если файл prog_index.m3u8 зашифрован и ключ дешифрования недоступен. Я проверил, что он работает нормально, когда ключ дешифрования может быть загружен.

Кто-нибудь знает обходной путь?


person Nuoji    schedule 12.01.2011    source источник


Ответы (1)


Об этой ошибке сообщили в Apple.

Обходной путь — загрузить и проанализировать файл .m3u8 и загрузить соответствующие ключи дешифрования. Если возникает ошибка, ее легко изящно обработать.

Сохраните загруженные ключи дешифрования локально на телефоне и замените удаленный URL-адрес в файле .m3u8 локальными путями.

Наконец, сохраните измененный .m3u8 локально и передайте этот локальный URL-адрес в AVPlayer.

person Nuoji    schedule 19.01.2011