MPNowPlayingInfoCenter nowPlayingInfo игнорируется для аудио AVPlayer через AirPlay - PullRequest
11 голосов
/ 10 января 2012

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

Я хочу отобразить информацию о воспроизводимом в данный момент аудио, используя метод MPNowPlayingInfoCenter nowPlayingInfo.

Когда я блокирую экран, я вижу установленное изображение и заголовок, так что я знаю, что этот метод каким-то образом регистрирует информацию, но когда я переключаюсь на AirPlay на AppleTV, дисплей выглядит как общий видеовыход синдикатор выполнения внизу, но истекшее время и длительность отображаются правильно.

Если я установлю то же самое nowPlayingInfo, но затем начну звук, используя AudioQueue, то он правильно отобразит изображение на половине экрана (этовыглядит так же, как при воспроизведении подкаста с помощью приложения iPod / Music).

Является ли это ограничением поддержки AirPlay для аудио с использованием AVPlayer или есть способ заставить его правильно отображать изображение и информацию?

Ответы [ 2 ]

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

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

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

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

Как только вы отключите эту функцию (т. Е. self.player.allowsAirPlayVideo = NO;), ваш звук все равно будет воспроизводиться через AirPlay, но теперь он будет корректно отображать интерфейс, аналогичный интерфейсу аудио / iPod.

5 голосов
/ 14 января 2014

Если вы используете iOS7, вам нужно отключить внешнее воспроизведение:

self.player.allowsExternalPlayback = NO;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...