问题描述
问题代码:
click: function (event) {
let InnerAudioContext = wx.createInnerAudioContext()
InnerAudioContext.src ="cloud://xxxxxxxx/1.wav";
InnerAudioContext.play();
}
在开发者工具中,使用模拟器点击按钮可以播放音频。
但是,使用手机端,在预览和真机调试中
都无法播放音频。
并且使用console.log都可以打印出音频在云存储中存储的地址。
问题解决
经过搜寻资料,查看微信小程序的官方文档:
InnerAudioContext包含很多参数:
string src
音频资源的地址,用于直接播放。2.2.3 开始支持云文件ID
number startTime
开始播放的位置(单位:s),默认为 0
boolean autoplay
是否自动开始播放,默认为
false
boolean loop
是否循环播放,默认为
false
boolean obeyMuteSwitch
是否遵循系统静音开关,默认为
true
。当此参数为false
时,即使用户打开了静音开关,也能继续发出声音。从 2.3.0 版本开始此参数不生效,使用 wx.setInnerAudioOption 接口统一设置。
经过尝试,发现autoplay默认设置为false
,在代码中设置 autoplay为true即可解决问题。
修改后,代码片段如下:
click: function (event) {
let InnerAudioContext = wx.createInnerAudioContext()
InnerAudioContext.autoplay = true
InnerAudioContext.src ="cloud://xxxxxxxx/1.wav";
InnerAudioContext.play();
}
即可在手机端正常播放音频。