繁体   English   中英

MPMusicPlayerController停止发送通知

[英]MPMusicPlayerController stops sending notifications

我有一个MPMusicPlayerController可以播放整个iPod库,并且我已订阅曲目更改等时的通知。这一切都正常工作

到达播放列表的末尾时,MPMusicPlayerController发送状态更改通知并停止。 当我重新启动播放器时,音乐会再次开始播放,但是当曲目改变时,MPMusicPlayerController不再发送通知。

有什么想法吗?

显然,有时会在播放器对象实际更新其状态之前发布MPMusicPlayerControllerPlaybackStateDidChangeNotification。 但是,您仍然可以从通知的userInfo字典中获取新状态(正是由于这个原因,它可能在其中)。

在代码中:

- (void)playbackStateDidChange:(NSNotification *)notification {
    static NSString * const stateKey = @"MPMusicPlayerControllerPlaybackStateKey";
    NSNumber *number = [[notification userInfo] objectForKey:stateKey];
    MPMusicPlaybackState state = [number integerValue];
    // state is the new state
    MPMusicPlayerController *player = [notification object];
    // state may not be equal to player.playbackState
}

经过大量实验后,以下是解决我的问题的方法。

事实证明,正在发送通知,并且该状态被报告为“已停止”; 但是,发送“播放”消息只会导致触发另一个通知,并且状态仍显示为“已停止”。

当播放器到达队列末尾时停止播放时,并没有“完全”停止播放,我最好的猜测是,当播放器停止播放时,它没有正确重置队列状态或类似的状态,因为我发现如果我在收到停止通知后发送了“停止”消息,则能够发送“播放”消息并使播放器正常重启。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM