beginGeneratingPlaybackNotifications не вызывается - PullRequest
1 голос
/ 09 февраля 2020

beginGeneratingPlaybackNotifications, кажется, не вызывается в моем приложении. Я могу получить storeIds, и музыка c играет (и я могу пропустить вперед и назад), но уведомление никогда не вызывается. Любой совет или я что-то упускаю?

        let player = MPMusicPlayerController.applicationQueuePlayer

        // Trying all of these
        player.beginGeneratingPlaybackNotifications()
        MPMusicPlayerController.systemMusicPlayer.beginGeneratingPlaybackNotifications()
        MPMusicPlayerController.applicationMusicPlayer.beginGeneratingPlaybackNotifications()
        MPMusicPlayerController.applicationQueuePlayer.beginGeneratingPlaybackNotifications()

        NotificationCenter.default.addObserver(self,
                                               selector: #selector(refreshView),
                                               name: .MPMusicPlayerControllerPlaybackStateDidChange,
                                               object: self)


        NotificationCenter.default.addObserver(self,
                                               selector: #selector(refreshView),
                                               name: .MPMusicPlayerControllerNowPlayingItemDidChange,
                                               object: self)

    let queue  = MPMusicPlayerStoreQueueDescriptor(storeIDs: storeIds)
    player.setQueue(with: queue)
    player.play()

    // Never called
    @objc func refreshView(){
      let nowPlaying = player.nowPlayingItem

1 Ответ

0 голосов
/ 09 февраля 2020

Эти строки неверны:

    NotificationCenter.default.addObserver(self,
                                           selector: #selector(refreshView),
                                           name: .MPMusicPlayerControllerPlaybackStateDidChange,
                                           object: self)


    NotificationCenter.default.addObserver(self,
                                           selector: #selector(refreshView),
                                           name: .MPMusicPlayerControllerNowPlayingItemDidChange,
                                           object: self)

Изменить

  object: self

на

  object: nil

В обоих.

...