AVAudioPlayer 本地音频设置补充篇:后台播放设置

AVAudioPlayer 本地音频设置补充篇:后台播放设置

设备/引擎:Mac(11.6)/cocos

开发工具:Xcode(13.0)

开发语言:Objective-c/c++

开发需求:后台播放相关设置

前几篇文章着重说了如何实现音频后台播放、调音、控制音量、定时等等功能,猛然发现忘了说ios关于后台播放的一些设置。话不多说。

在AppDelegate中重写applicationDidEnterBackgroundapplicationWillEnterForeground即工程进入后台后的设置以及重新进入工程后的设置。
本次工程中只需要对特定音频操作,对背景音乐不做后台播放操作,所以需要再此设置一下。
如下代码所示:只需要在程序进入后台时停止播放背景音乐即可

void AppDelegate::applicationDidEnterBackground()
{
    CCDirector::sharedDirector()->startAnimation();
    SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
}

当程序继续运行时,则需要一下代码,来实现重启背景音乐,但要注意哪些场景需要背景音乐,哪些不需要,条件根据自身工程而定。同样用此方法也可以对特定音频进行单独处理。

void AppDelegate::applicationWillEnterForeground()
{
    CCDirector::sharedDirector()->startAnimation();
    if (CCUserDefault::sharedUserDefault()->getBoolForKey("blackGround") ) {
        SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
    }
}

设置好后还需要在AppController.mm中对以上方法进行调用。在此也有一个applicationDidEnterBackground,我们需要调用上述写好的方法,如下:

- (void)applicationDidEnterBackground:(UIApplication *)application {
    cocos2d::CCApplication::sharedApplication()->applicationDidEnterBackground();
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
    cocos2d::CCApplication::sharedApplication()->applicationWillEnterForeground();
}

注意applicationWillResignActive此方法即为程序被挂起时要执行的代码,我们需要在此进行重写调用,如下:

- (void)applicationWillResignActive:(UIApplication *)application {
    cocos2d::CCApplication::sharedApplication()->applicationWillEnterForeground();
}

第一次设置时一定要注意每一部分是否都设置完成。好了,整体情况就是这些。

希望能给大家一些帮助!!!有什么问题以后也可评论私信一起交流~

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>