Трансляция аудио с использованием AVPlayer не работает в фоновом режиме - PullRequest
5 голосов
/ 10 января 2012

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

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

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

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

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

Ответы [ 2 ]

10 голосов
/ 10 января 2012

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

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

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

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

3 голосов
/ 10 января 2012

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

enter image description here

...