0

我正在尝试在下一首歌曲开始播放之前存储一首歌曲(MPMediaItem)的播放头时间。你会怎么做?

在歌曲改变之前MPMusicPlayerControllerNowPlayingItemDidChangeNotification有没有类似的东西?

4

3 回答 3

1

我不认为,今天存在这样的通知(歌曲更改前通知)。我只发现只有两个可以收听歌曲更改状态的通知。

MPMusicPlayerControllerNowPlayingItemDidChangeNotification,
MPMusicPlayerControllerPlaybackStateDidChangeNotification,

苹果文档:

http://developer.apple.com/library/ios/#documentation/mediaplayer/reference/MPMusicPlayerController_ClassReference/Reference/Reference.html

于 2011-03-20T08:22:00.563 回答
1

简单:当歌曲改变时,在foo某处设置一个变量为当前时间,并将另一个变量设置bar为新歌曲的当前播放时间(通常会是0.0。)当歌曲再次变化时,foo从当前时间中减去值,然后添加的价值bar;结果是刚刚播放的歌曲的最终偏移量。

您还必须处理快进、快退、停止和暂停,但您可以通过监控播放状态并查询歌曲的当前播放时间来根据需要保持同步。

于 2011-03-20T08:26:42.327 回答
0

我认为在媒体项目更改之前没有通知。最好的方法似乎是使用计时器不断地将值从媒体播放器复制到一个变量以存储 NSTimeInterval,直到媒体项更改或媒体播放器状态更改。

于 2011-03-20T10:35:12.617 回答