Iphone iTunes同步后,MPMusicLayerController停止工作

Iphone iTunes同步后,MPMusicLayerController停止工作,iphone,cocoa,ios4,mpmusicplayercontroller,Iphone,Cocoa,Ios4,Mpmusicplayercontroller,我知道有一个类似的问题,但这个问题的答案并不能解决这个问题 我使用的是iOS 4,这在支持多任务的设备和非多任务设备上都会发生。我在iPhone4、iPhone3GS、iPodtouch2G和iPodtouch1G上进行了测试 我有一个项目只是为了测试这个问题。它使用MPMusicLayerController控制iPod音乐播放,并在正在播放的项目更改时获取通知,以便更新艺术品、艺术家和标题。当您第一次启动它时,它工作正常。但是,如果您执行iTunes同步,我相信这会退出设备上的iPod.ap

我知道有一个类似的问题,但这个问题的答案并不能解决这个问题

我使用的是iOS 4,这在支持多任务的设备和非多任务设备上都会发生。我在iPhone4、iPhone3GS、iPodtouch2G和iPodtouch1G上进行了测试

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

该项目还允许您从iPod库中选择播放列表开始播放。同步后它也会停止工作。它仍然可以获得播放列表,但尝试在iPod音乐播放器中对它们进行排队并没有任何作用

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


还有其他人有此问题吗?

我会尝试将AVAudioSession类别重新设置为
AVAudioSessionCategorySoloAmbient
,然后重新激活会话。

我遇到了完全相同的问题,并且无法正确修复它,虽然我确实想出了一个临时解决方案,比让我的应用程序陷入无法使用的状态要好:


我在我的处理程序中调用
MPMediaLibraryDidChangeNotification
exit(0)
,这样至少我的用户不会因为不知道如何修复它而无法执行任何操作。

这根本不起作用。它会完全停止音乐播放,更糟糕的是,我的应用程序仍然无法收到通知或排队等待其他播放列表。用户需要在退出应用程序后重新启动应用程序。它确实解决了这个问题,但方式相当不雅。我认为唯一真正的解决办法是向苹果公司提交一份雷达错误报告,等待他们修复。我刚刚发现,如果用户使用蓝牙耳机听音乐,打电话,将电话中的输出源从蓝牙更改为iPhone,并结束通话,也会发生此错误。在应用程序被强制退出或音乐从iPod重新启动之前,我的应用程序将无法播放音乐或设置播放队列。更正:在此新方案中,我可以将播放队列设置为恢复播放,但发送
[musicPlayer play]
不起作用。这个问题可能与此无关。我提交了一个雷达(Bug ID#8183973),它被标记为Bug ID#8182738的副本。当一个bug被标记为重复时,我无法再跟踪bug的解决方案,因为问题被标记为关闭。