Определение окончания воспроизведения музыкальной композиции Apple

Я пишу приложение, которое должно выполнить действие, когда песня закончилась. Я использую MPMusicPlayerController.applicationQueuePlayer() в качестве музыкального проигрывателя для воспроизведения яблочной музыки пользователя. Мне было интересно, есть ли способ, которым я мог бы определить, когда песня пользователя закончила играть или когда очередь закончилась (или было бы полезно)

1 ответ

Решение

MPMusicPlayerController имеет метод экземпляра beginGeneratingPlaybackNotifications(), Есть три Notification s, которые будут доставлены подписчикам:

  1. MPMusicPlayerControllerNowPlayingItemDidChange
  2. MPMusicPlayerControllerPlaybackStateDidChange
  3. MPMusicPlayerControllerVolumeDidChange

Чтобы определить, когда воспроизведение песни или очередь закончились, вы можете использовать MPMusicPlayerControllerNowPlayingItemDidChange,

Когда вы получите это уведомление, проверьте MPMusicPlayerController s nowPlayingItem (см. документацию). Если песня закончена, а другая играется nowPlayingItem будет изменен Если вся очередь закончена и ничего не играет, nowPlayingItem будет иметь значение nil,

Другие вопросы по тегам