Мое приложение воспроизводит потоковое аудио через AVPlayer
и использует MPNowPlayingInfoCenter
для отображения информации о потоке на экране блокировки устройства.
Это отлично работает, когда звук фактически воспроизводится, но если поток ложится из-за замедления сети (т.е. я получаю AVPlayerItemPlaybackStalledNotification
), информация исчезает с экрана блокировки. Но если поток возобновит игру, он снова появится.
Это сбивает с толку, потому что когда исчезающая информация исчезает с экрана блокировки, она дает вид, что приложение остановило воспроизведение. Но затем он возобновляет воспроизведение, когда пользовательский интерфейс блокировки экрана указывает, что этого не произойдет.
Есть ли что-то, что я могу сделать, чтобы убедиться, что информация, воспроизводимая сейчас, остается видимой, когда поток должен воспроизводиться, но в настоящее время не из-за проблем со скоростью сети? Кажется, единственный способ сохранить постоянный пользовательский интерфейс блокировки экрана - фактически убить сетевое соединение, когда оно заглохнет, что является довольно глупым, но, по крайней мере, не путать.
В случае, если более подробная информация поможет:
- Когда приложение получает это уведомление, единственное, что он делает, это обновление пользовательского интерфейса.
- Приложение никогда не очищает
MPNowPlayingInfoCenter
, когда есть текущая программа, поэтому пока предполагается, что поток должен воспроизводиться, есть непустые данные, которые должны отображаться.