2010-07-13 92 views
3

我知道有一个类似的问题MPMusicPlayerController stops sending notifications,但该问题的答案不能解决此问题。MPMusicPlayerController在iTunes同步后停止工作

我正在使用iOS 4,并且这种情况发生在启用了多任务的设备和非多任务设备上。我已经在iPhone 4,iPhone 3GS,iPod touch 2G和iPod touch 1G上进行了测试。

我有一个项目只是为了测试这个问题。它使用MPMusicPlayerController来控制iPod音乐播放,并在nowPlaying项目更改时收到通知,因此可以更新艺术品,艺术家和标题。它在第一次启动时运行良好。但是,如果您执行的iTunes同步(我相信会退出设备上的iPod.app并返回到我的应用程序),则应用程序不再从MPMusicPlayerController获取通知,因此它不会更新正在播放项目显示。

该项目还允许您从iPod库中选择一个播放列表开始播放。同步后它也停止工作。它仍然可以获取播放列表列表,但尝试将它们排列在iPod音乐播放器中并不会执行任何操作。

释放MPMusicPlayerController的旧实例不起作用。取消注册并重新注册通知不起作用。这似乎是应用程序和iPod.app之间的IPC问题。解决它的唯一方法是杀死我的应用程序并重新启动它。

其他人有这个问题吗?

+0

我提交了一个雷达(Bug ID#8183973),它被标记为Bug ID#8182738的副本。当一个bug被标记为重复的时候,我不能再跟踪bug的解决方案,因为问题是标记关闭。 – lucius 2010-08-03 14:09:53

回答

2

我有完全相同的问题,一直没能妥善解决这个问题,虽然我没有想出了一个临时的解决方案这是不是让处于不可用状态,我的应用程序更好:

我打电话exit(0)在我的处理程序MPMediaLibraryDidChangeNotification,所以至少我的用户不会卡住无法做任何想知道如何解决它。

+0

用户需要在退出后重新启动应用程序。它的确解决了这个问题,但是却以一种相当不雅的方式。我认为唯一真正的解决办法就是向Apple提交一份雷达错误报告并等待他们解决。 – lucius 2010-07-15 22:55:46

+0

我刚刚发现,如果用户正在使用蓝牙耳机收听音乐,拨打电话,将电话呼叫中的输出源从蓝牙更改为iPhone,并结束通话,也会发生此错误。我的应用程序将无法播放音乐或设置播放队列,直到应用程序强制退出或重新从iPod.app启动音乐。 – 2010-07-16 02:23:04

+0

更正:在这种新场景中,我*可以设置播放队列以恢复播放,但发送[[musicPlayer播放]]不起作用。这个问题可能不相关。 – 2010-07-16 02:34:42

0

我想尝试重新设置AVAudioSession类别AVAudioSessionCategorySoloAmbient并重新激活会话。

+0

这根本不起作用。它会完全停止音乐播放,更糟的是,我的应用程序仍然没有收到通知或排队不同播放列表的功能。 – lucius 2010-07-15 22:53:02