崩溃 – MPMusicPlayerController:当iPod App在后台终止时,iPod停止发送通知

前端之家收集整理的这篇文章主要介绍了崩溃 – MPMusicPlayerController:当iPod App在后台终止时,iPod停止发送通知前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用iPod播放器控制器的音乐播放器属性.
// .h
@property (nonatomic,retain) MPMusicPlayerController *ipodPlayer;

// .m
ipodPlayer = [MPMusicPlayerController iPodMusicPlayer];

NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];

[notificationCenter addObserver:self selector:@selector(changedPlaybackState:) name:MPMusicPlayerControllerPlaybackStateDidChangeNotification object:ipodPlayer];
[notificationCenter addObserver:self selector:@selector(changedNowPlayingItem:) name:MPMusicPlayerControllerNowPlayingItemDidChangeNotification object:ipodPlayer];

[ipodPlayer beginGeneratingPlaybackNotifications];

后台处理中,如果iPod播放器应用程序被终止,控制台将打印出来:

MediaPlayer: Message playbackState timed out.

如果没有崩溃(或冻结,降低性能),则通知不再发送到我的观察方法.我仍然可以发送消息:

[ipodPlayer pause];
[ipodPlayer play];
[ipodPlayer skipToNextItem];
[ipodPlayer skipToPrevIoUsItem];

但不能收到任何通知

我的问题是:

>有没有办法重新分配,在运行时重新加载指针?如何恢复属性就像首次启动时一样?
>我如何抓住这个消息:“MediaPlayer:消息回放状态超时.”在控制台输出?这不像使用NSLog.

感谢你们对我的帮助.

更新:
似乎使用assign或weak的ipodPlayer属性解决方案.此外,访问它是通过假设属性可能不在那里完成.经过多次试用和一年的实际使用,在我的应用程序,我认为这是正确的解决方案.

解决方法

我在iOS 5中与我的MpMoviePlayerController有类似的问题.我找到了一个照顾它的修复程序.它也可能在这里工作.

加:

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

在viewDidLoad.

更多我的其他post

原文链接:https://www.f2er.com/iOS/330436.html

猜你在找的iOS相关文章