我正在尝试在下一首歌开始播放之前存储歌曲的播放头时间(MPMediaItem)。你会怎么做?
在歌曲发生变化之前,有MPMusicPlayerControllerNowPlayingItemDidChangeNotification
之类的内容会激活吗?
答案 0 :(得分:1)
我不认为今天存在这样的通知(歌曲改变前通知)。 我只发现两个通知,可以听歌改变状态。
MPMusicPlayerControllerNowPlayingItemDidChangeNotification,
MPMusicPlayerControllerPlaybackStateDidChangeNotification,
Apple文档:
答案 1 :(得分:1)
简单:当歌曲改变时,将变量foo
设置为当前时间,并将另一个变量bar
设置为新歌曲的当前播放时间(通常为0.0
。 )当歌曲再次改变时,从当前时间中减去foo
的值,然后添加bar
的值;结果是正在播放的歌曲的最终偏移量。
您还必须处理快进,快退,停止和暂停,但您可以通过监控播放状态并查询歌曲的当前播放时间来实现,以便根据需要保持同步。
答案 2 :(得分:0)
我认为在更改媒体项目之前没有通知。最好的方法似乎是使用计时器不断地将媒体播放器中的值复制到变量以存储NSTimeInterval,直到更改媒体项或更改媒体播放器状态。