Мое приложение воспроизводит потоковое аудио через AVPlayer
и использует MPNowPlayingInfoCenter
для отображения информации о потоке на экране блокировки устройства.
Это отлично работает, когда звук действительно воспроизводится, но если поток останавливается из-за замедления сети (т.е. я получаю AVPlayerItemPlaybackStalledNotification
), информация исчезает с экрана блокировки. Но затем, если поток возобновляет воспроизведение, он снова появляется.
Это сбивает с толку, потому что когда воспроизводимая информация исчезает с экрана блокировки, создается впечатление, что приложение остановило воспроизведение. Но затем он возобновляет воспроизведение, когда пользовательский интерфейс экрана блокировки, кажется, указывает, что этого не произойдет.
Есть ли что-то, что я могу сделать, чтобы убедиться, что информация о текущем воспроизведении остается видимой всякий раз, когда поток должен воспроизводиться, но в настоящее время это не связано с проблемами скорости сети? Кажется, что единственный способ сохранить согласованный пользовательский интерфейс экрана блокировки — это фактически отключить сетевое соединение, когда оно зависает, что довольно глупо, но, по крайней мере, не сбивает с толку.
В случае, если более подробная информация поможет:
- Когда приложение получает это уведомление, единственное, что оно делает, — это обновляет пользовательский интерфейс.
- Приложение никогда не очищает
MPNowPlayingInfoCenter
, когда есть текущая программа, поэтому, пока поток должен воспроизводиться, должны отображаться непустые данные.
addPeriodicTimeObserverForInterval:
- person yairsz   schedule 06.05.2015AVPlayerItemPlaybackStalledNotification
? Что происходит, когда вы не слушаете? А как насчет кэширования ваших потоков данных? - person Miralem Cebic   schedule 06.05.2015MPNowPlayingInfoCenter
объявляетnowPlayingInfo
copy
иваром, это не имеет значения. Несмотря на это, он работает нормально, за исключением случаев, когда происходит задержка звука. - person Tom Harrington   schedule 06.05.2015