我在商店中发布了一个(Cocos2d + UIKit)应用程序,即使iPhone被锁定或应用程序处于后台,它也会重现音轨并需要继续播放。
它曾经很好地运行到iOS 5.0,但自从iOS 5.1应用程序重新启动:声音停止,当用户解锁iPhone时不显示活动状态,再次打开时它会显示启动画面和初始窗口。
我尝试调试它但是当我锁定iPhone时,xCode在EAGL中暂停... 我也尝试在MPMoviePlayerViewController中播放曲目,它也是如此。
请帮忙,由于这个问题我每天都会收到很多差评...
答案 0 :(得分:1)
在没有看到你的代码的情况下很难分辨,但作为一个疯狂的猜测,试试这一行:
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
放入第一个控制器的viewDidLoad方法。如果它能为您解决问题,请告诉我。
------更新-----
检查5.1的另一件事是设置
[[AVAudioSession sharedInstance] setActive:YES error:nil];
在每个AVAudioPlayer播放命令之前。
这解决了我的闹钟应用程序,它曾经在4.x中完美地在闹钟时间发声,并开始在5.1中静音。我发现在[AVAudioPlayer播放]之前放置上面一行解决了我的问题。
答案 1 :(得分:1)
想想我最后通过添加:
来解决它 - (void)applicationDidEnterBackground:(UIApplication *)application
{
[[CCDirector sharedDirector] stopAnimation];
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
[[CCDirector sharedDirector] startAnimation];
[Appirater appEnteredForeground:YES];
}
- (void)applicationWillResignActive:(UIApplication *)application
{
[[CCDirector sharedDirector] pause];
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
[[CCDirector sharedDirector] resume];
}
我不确定为什么它在iOS 5.1之前正常工作,但是修复了它:)