Как заставить Airplay работать с зашифрованной потоковой передачей HTTPS?

Я изо всех сил пытался заставить AirPlay работать с зашифрованными потоками, воспроизводимыми в AVPlayer.

Чтение этой страницы Apple не означает Не принесет мне много пользы.

Обслуживать ключи из защищенной области HTTPS. Перед началом воспроизведения ваше приложение может использовать NSURLConnection для аутентификации, предоставляя скрытые учетные данные.

Я смог заставить это работать только в симуляторе. Не на устройстве.

Используйте файлы cookie по протоколу HTTPS. Ваше приложение может установить соединение с HTTPS-сервером и аутентифицировать приложение способом, определяемым приложением. Затем ваш сервер может выдать файл cookie, который применяется к ключевым URL-адресам. Вы должны установить срок действия куки-файла спустя долгое время после завершения воспроизведения. Затем сервер должен потребовать наличия действующего файла cookie сеанса в будущих запросах GET для ключей. Для максимальной надежности, если срок действия находится в ближайшем будущем, сервер должен обновить дату истечения срока действия cookie в своем ответе на будущие запросы GET.

Haven на самом деле не пробовал это, так как у меня нет прямого доступа к настройке сервера, но я собираюсь, если не появятся другие ответы.

Укажите ключи в файлах .m3u8, используя определенную приложением схему URL-адресов. Приложение должно зарегистрировать настраиваемый протокол NSURLProtocol для обработки запросов для этих URL-адресов. Затем проигрыватель обращается к вашему приложению, когда ему нужно загрузить ключевой URL-адрес; затем ваше приложение может получить ключ по защищенному побочному каналу и предоставить его игроку.

Это не работает, потому что HTTP-соединения AVPlayer полностью обходят систему NSURLProtocol. Вы просто не можете перехватить ни один из HTTP-запросов, сделанных AVPlayer.

Я был бы бесконечно благодарен, если у кого-нибудь есть способ решить проблему с обслуживанием ключа шифрования способом, который работает с AVPlayer и AirPlay.


person Nailer    schedule 26.04.2012    source источник


Ответы (1)


Похоже, проблема, с которой я боролся, исчезла с обновлением iOS 5.1.1 и следующим обновлением Apple TV. Обновления iOS 5.1.1 было недостаточно, чтобы решить проблему самостоятельно, но вместе с последующим обновлением Apple TV все снова в порядке.

Теперь достаточно реализовать свой собственный сервер обратной петли, как я описывал ранее в вопрос.

person Nailer    schedule 11.05.2012
comment
Можете ли вы транслировать зашифрованный hls m3u8 с помощью Apple TV 3-го поколения и iOS 8.1? - person user1788736; 07.06.2015
comment
К сожалению, я не работал над приложениями, использующими воспроизведение видео, уже 3 года. Я не успевала за развитием. Извините! - person Nailer; 07.06.2015