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

Posted ImCode0222

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();

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

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

以上是关于AVAudioPlayer 本地音频设置补充篇:后台播放设置的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 AVAudioPlayer 播放存储在文档目录中的本地 mp3 文件

使用 AVAudioPlayer 播放本地音频文件

iOS AVAudioPlayer播放音频时,已经将音频下载了本地,怎么还出现下面的错误啊

使用 AVAudioPlayer 播放音频

为啥 AVAudioPlayer 不播放?

iOS音频篇:使用AVPlayer播放网络音乐