现场景为页面中存在多个音频
当前实现方式为页面调用wx.createInnerAudioContext(), 点击按钮调用方法设置对象src,然后进行播放
出现问题:场景中可能会出现音频文件不存在的情况,即链接无实际音频文件。监听onError方法无任何回调,通过设置src后获取duration属性判断时长是否为0,当文件不存在时可以正常判断,当文件存在时,依旧返回0。
innerAudioContext.src = src
if (!innerAudioContext.duration) {
wx.showToast({
title: '音频文件错误',
icon: 'none'
})
return
}
this.setData({ play })
innerAudioContext.play()
当调用两次该方法后(第三次)可正常返回duration。多次测试均为调用2次后正常
你好,在监听播放音频可以播放状态时InnerAudioContext.onCanplay获取duration试试,可以加个定时器延迟看看。
只有在当前有合法的 src 时返回(只读)该属性值才会存在。