createAudio() {
this.playAudio = uni.createInnerAudioContext();
this.playAudio.onPlay(() => {
this.play()
});
this.playAudio.onPause(() => {
this.pause()
});
this.playAudio.onEnded(() => {
this.ended()
});
this.playAudio.onError((e) => {
console.log('playAudio onError', e);
this.recorderDuration = -1;
});
this.playAudio.onCanplay((e) => {
console.log(this.playAudio, '可以播放')
if (this.playAudio) {
this.playingDuration = this.playAudio.currentTime;
this.recorderDuration = this.playAudio.duration;
}
})
},
loadNext() {
if (!this.playAudio) {
this.createAudio()
}
this.playingDuration = 0;
this.recorderDuration = 0;
this.playAudio.src = this.dataInfo.AttachViewUrl;
},
- 发布:2022-07-19 17:26
- 更新:2024-05-17 10:10
- 阅读:1073
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: windows 10
HBuilderX类型: 正式
HBuilderX版本号: 3.4.18
手机系统: Android
手机系统版本号: Android 12
手机厂商: 小米
手机机型: Redmi 9A
页面类型: nvue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
见BUG描述
见BUG描述
预期结果:
见BUG描述
见BUG描述
实际结果:
见BUG描述
见BUG描述
bug描述:
createInnerAudioContext 音频 报MediaError -99
界面有三个按钮,点击按钮切换加载音频文件(固定的3个有效的音频文件),有不小几率加载音频文件会无法播放,报MediaError -99
只要首次加载成功的文件,就一定可以播放,切换到其它文件,再切回来一样可以播放
只要首次加载出问题的文件(不用等报错,只要短时间内没有触发onCanplay),就一定不可以播放,切换到其它文件,再切回来不行,在音频地址后面追加其它参数改变url无效,感觉会被识别为同一个文件。
在当前页面销毁音频组件,重新建立组件,无法恢复正常。
退出页面,重新进入,可重新开始,三个文件有时全部正常,有时是任意1~3个不正常。
该问题在不同的手机上都出现过,重现概率较高的方式是快速切换不同的音频文件。
2 个回复
2***@qq.com
我也遇到了这个报错,我的情况是,频繁的创建音频对象实例,在前一个没有销毁的情况下,继续创建,导致报错-99,
我的解决方法是,在创建前,先将前一个实例销毁,销毁后在进行创建,不知道对你是否有帮助!
6***@qq.com - 小盼子
音乐格式问题 或者音乐地址有误