Трансляция звука с помощью AVPlayer не работает в фоновом режиме

Я выполняю воспроизведение звука с помощью класса AVPlayer с удаленного URL-адреса.

Играет нормально, если я просто играю в наушники / встроенный динамик, но я вижу некоторые странности с AirPlay.

Когда я перехожу на использование AppleTV для AirPlay, он будет транслировать звук, но на моем iphone индикатор воспроизведения звука (маленький треугольник воспроизведения в верхней строке меню) исчезает, и когда я блокирую телефон вместо того, чтобы продолжать в фон, он останавливается. (При нормальной игре играет в фоновом режиме нормально).

Почему AVPlayer не работает в фоновом режиме для аудио через AirPlay?

Это то, что видят другие? Есть ли способ обойти это?


person Andrew Kuklewicz    schedule 10.01.2012    source источник


Ответы (2)


Хорошо - я покопался на форумах разработчиков Apple и нашел подсказку.

Если вы используете AVPlayer только для аудио и хотите, чтобы он работал в фоновом режиме во время трансляции, вам необходимо отключить параметр allowsAirPlayVideo.

По-видимому, AVPlayer на iOS 5+ предполагает, что он воспроизводит видео через AirPlay, и поэтому не разрешает фоновое воспроизведение, если вы явно не отключите видео AirPlay.

После того, как вы отключите это (т.е. self.player.allowsAirPlayVideo = FALSE;), ваш звук будет по-прежнему воспроизводиться через AirPlay, но теперь он не будет обрабатываться как видео, а только как звук, что позволит фоновой работе работать.

person Andrew Kuklewicz    schedule 10.01.2012
comment
Любое решение для iOS 7, поскольку allowsAirPlayVideo устарело? - person sooper; 17.11.2013
comment
Ага. Просто используйте вместо этого self.player.allowsExternalPlayback = NO;. - person Simon Tillson; 25.04.2015

Включили ли вы параметр многозадачности «Фоновый звук» в списке приложений?

введите описание изображения здесь

person ACBurk    schedule 10.01.2012
comment
да. Как я уже сказал, он отлично работает в фоновом режиме, когда не будет транслироваться, так что да, у меня аудио сессия настроена на воспроизведение и активна, а info.plist настроен на включение фонового звука. Это не первое мое родео. - person Andrew Kuklewicz; 10.01.2012