iOS 5.1在后台停止应用程序

时间:2012-03-16 10:22:52

标签: objective-c ios cocos2d-iphone avaudioplayer ios5.1

我在商店中发布了一个(Cocos2d + UIKit)应用程序,即使iPhone被锁定或应用程序处于后台,它也会重现音轨并需要继续播放。

它曾经很好地运行到iOS 5.0,但自从iOS 5.1应用程序重新启动:声音停止,当用户解锁iPhone时不显示活动状态,再次打开时它会显示启动画面和初始窗口。

我尝试调试它但是当我锁定iPhone时,xCode在EAGL中暂停... 我也尝试在MPMoviePlayerViewController中播放曲目,它也是如此。

请帮忙,由于这个问题我每天都会收到很多差评...

2 个答案:

答案 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之前正常工作,但是修复了它:)