1***@qq.com
1***@qq.com
  • 发布:2019-09-23 17:21
  • 更新:2020-04-16 12:10
  • 阅读:2661

为什么用uni.createInnerAudioContext播放声音,播放到15次的时候报错

分类:HBuilderX

详细问题描述

播放到15次的时候就会报错
测了不下于50次每次都是一样,到了15次播放的时候就会报错,写了销毁实例也是一样
错误信息:
res.errMsg:MediaError
res.errCode:-99

[内容]

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

编译器版本:2.2.2,当前项目编译模式:自定义组件模式。
安卓手机

2019-09-23 17:21 负责人:无 分享
已邀请:
chinahappybeer

chinahappybeer - china happy beer

innerAudioContext.onPause(function() {    
                console.log('end');    
                innerAudioContext.destroy()    
            })  

我加了这句话,似乎也没问题了。

1***@qq.com

1***@qq.com (作者) - 俺是一只小白鼠

定义全局变量var p =null;

p = plus.audio.createPlayer('http://120.25.215.71:8080/voice/IDCard.mp3');
p.play(function(){//成功关闭音频
p.close();
},function(res){//失败返回函数
console.log(res);
});

改用H5+ API之后解决了这个问题
但是一定要记得调用close()方法!!!

  • 小房

    小米8手机不兼容

    2020-03-02 15:11

  • 小房

    抱着个错{"code":-99,"message":"未知错误"}

    2020-03-02 15:12

6***@qq.com

6***@qq.com

let innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.autoplay = true;
innerAudioContext.src = 'https://img-cdn-qiniu.dcloud.net.cn/uniapp/audio/music.mp3';
innerAudioContext.onPlay(() => {

            });  
            innerAudioContext.onError((res) => {  
                console.log(res.errMsg);  
                console.log(res.errCode);  
            });  

            innerAudioContext.onPause(function() {  
                console.log('end');  
                innerAudioContext.destroy()  
            })  

坑 多次初始化这个对象后如果另一个开始播放这个就会暂停 如果不销毁就会出现这种莫名其妙的报错

4***@qq.com

4***@qq.com

问题解决了  

let src = '../../static/voice/'+ v +'.mp3';  
            //实例化声音  
            const Audio = uni.createInnerAudioContext();  
                  Audio.autoplay=true;  
                  Audio.src = src;//音频地址  
                  Audio.play(); //执行播放  
                  Audio.onError((res) => {  
                    console.log(res.errMsg);  
                    console.log(res.errCode);  
                  });  
                  Audio.onPause(function() {      
                      console.log('end');      
                      Audio.destroy();  
                  });
              Audio.onPause(function() {      
                  console.log('end');      
                  Audio.destroy();//音频播放停止后,就销毁实例  
              });

该问题目前已经被锁定, 无法添加新回复