
140
|
第
4
章
4.7
当前曲目何时改变
问题
我们想知道,正在播放的媒体何时发生了改变。
解决方案
通过
NSNotificationCenter
,订阅一个
MPMusicPlayerControllerNowPlayingItemD
idChangeNotification
通知。首先,创建一个
AnyObject
?属性,用于保存一个“观
察者对象”的引用。
var trackChangedObserver : AnyObject?
如果我们想在播放内容发生改变时获得通知,需要向通知中心注册一个“播放内容
已改变通知”的观察者:
trackChangedObserver = NotificationCenter.default
.addObserver(forName: .MPMusicPlayerControllerNowPlayingItemDidChange,
object: nil, queue: OperationQueue.main) { (notification) -> Void in
self.updateTrackInformation()
}
然后,获得一个你想订阅通知的那个
MPMusicPlayerController
的引用,调用它的
beginGeneratingPlaybackNotifications
方法:
let musicPlayer = MPMusicPlayerController.systemMusicPlayer
musicPlayer.beginGeneratingPlaybackNotifications() ...