cocos小游戏移植到oppo平台的音乐播放问题(cc.audioEngine)

这个问题在cocos论坛讨论的贴子是https://forum.cocos.org/t/2-4-2-oppo/97902/7

问题表现:是cocos开发的小游戏移植到oppo平台音效播放异常,比如按钮音效,战斗音效,在播放一定的次数以后,音效就消失了,play的时候没有声音了。

产生的原因:可以通过cc.audioEngine.getMaxAudioInstance()获取当前手机设置的允许初始化的音效数量,cocos的cc.audioEngine.play方法执行一次就会创建一个新的实例,当执行次数达到系统设定的最大值之后,声音就不能播放了。

解决办法:手动释放创建的音效。核心代码如下:

playmp3(name,loop){
        if(bgmusic.audioplay==false){
            //禁音了
            return;
        }
        if(loop===undefined){
            loop=false;
        }else{
            loop=true;
        }
        bgmusic.playcount=bgmusic.playcount+1;
        if(bgmusic.playcount>=cc.audioEngine.getMaxAudioInstance()){
            console.log('卸载所有音效'); 
            cc.audioEngine.uncacheAll();
            bgmusic.mp3arr=new Array();
            bgmusic.playcount=0;
        }

        let audioUrl=config.url_assets+'/mp3/'+name+'.mp3';
        if(bgmusic.mp3arr[name]==undefined){
            cc.loader.load({url: audioUrl, type: 'mp3'}, function (err, clip) {
                bgmusic.mp3arr[name]=clip;
                cc.audioEngine.play(clip,false,1);
            });
        }else{
            let clip=bgmusic.mp3arr[name];
            cc.audioEngine.play(clip,false,1);
        }
    },

 

上一篇:CocosCreator插件-初探编辑器扩展


下一篇:项目接入Poco-SDK,你必须知道的一些问题