beginGeneratingPlaybackNotifications似乎未在我的应用中被调用。我可以获取storeIds并播放音乐(并且可以向前和向后跳过),但是似乎从未调用该通知。有什么建议或我想念的东西吗?
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
这些行是错误的:
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
两者都有。