<!--pages/bofang/bofang.wxml-->
<button bindtap='bofang'>播放录音</button>
// pages/bofang/bofang.js
const innerAudioContext = wx.createInnerAudioContext();
Page({
bofang: function () {
innerAudioContext.src = "https://oss.medkr.com/files/1520504115434.m4a";
innerAudioContext.play();
innerAudioContext.onPlay((res) => {
console.log('开始播放')
})
innerAudioContext.onEnded((res) => {
console.log('播放完了')
})
innerAudioContext.onStop((res) => {
console.log('播放停止')
})
},
})
这是一个on的监听,你每触发一次bofang 都会往对应的on监听新增一个回调处理,和浏览器的 addEvent(‘click’, function(){})一样,你add多次,那就会触发每一个回调,很合理。
你是不是一直点击按钮触发 bofang 方法
在函数内部加上判断条件,来判断是否执行这个函数。
同样的问题,是怎么解决的呢?
已经解决了。万分感谢!
好,我试一试。
如果我使用的是addEvent,那出现这个现象的确很合理。但是我用的并不是addEvent啊!你觉得一个音频文件,的onPlay,onEnded和onStop事件只能正常执行一次是合理的吗?还是说你们做的这个东西就是一次性使用的,不能重复使用?您官方API可没有这么说吧。按您这么说,我每次想要执行,都要销毁全局音频文件,在重新创建一个新的全局音频?您觉得这个操作很合理吗?
同时,因为我要做语音播放的动画,连续多次点击,也是要做测试的。主要是现在卡在这个事件上了。我的动画显示的是,上次执行的函数并没有消除,而是一起执行的。也就是说,当我再次点击时,会把我上次点击执行的函数加上这次执行的函数一起执行一遍,所以会出现累加。
不是,每次就点击一下,而且就算很普通的点击,时间间隔2,3吧。而且下面的图片,也显示了我的点击事件。