在ios上播放一次音频后,再次点击播放该音频,无法调用 innerAudioContext.onPlay,在android手机上没有问题。
wxml:
<view class='color-white audio pull-left flex flex-vc' data-url='{{audioUrl}}' bindtap='play2'>
<view class='icon-play2'></view>
<text class='color-white' wx:if="{{audioStatus}}">播放中</text>
<text class='color-white' wx:else>{{duration}}s</text>
</view>
js:
const innerAudioContext2 = wx.createInnerAudioContext()
//预听录音
play2: function (e) {
console.log("预听录音")
var that = this;
innerAudioContext2.autoplay = true
innerAudioContext2.src = e.currentTarget.dataset.url;
},
onLoad: function (options) {
innerAudioContext2.onPlay(() => {
console.log('开始播放')
that.setData({
audioStatus: true,
})
})
innerAudioContext2.onEnded(() => {
console.log('播放结束')
that.setData({
audioStatus: false,
})
})
innerAudioContext2.onError((res) => {
console.log(res.errMsg)
console.log(res.errCode)
})
},
ios真机上打印信息如下图,第一次点击播放执行了,第二次点击播放时没有执行innerAudioContext2.onPlay:
在Android手机上如图所示:
麻烦给个相关的代码片段(https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/minicode.html),我们定位下问题
音频后边加个参数就可以了src = 'http://xxx.mp3?t=' + Date.now()
代码片段 wechatide://minicode/sJ7YCeme63YU
请用苹果手机测试,点击页面的6s可听语音,再次点击后没有声音
您好!我最近也遇到这个问题了,请问最后解决这个问题了吗?