innerAudioContext.onPlay() 执行了三次
代码里只调用了一次innerAudioContext.play();结果innerAudioContext.onPlay() 和
innerAudioContext.onEnded()
都执行了三次。
是bug?
10 回复
真机微信版本是最新的,开发工具也是最新的,机型测过5s 、6,基础版本库1.60.
|
这段是wxml的内容
const recorderManager = wx.getRecorderManager(); const innerAudioContext = wx.createInnerAudioContext(); // pages/test/test.js Page({ /** * 页面的初始数据 */ data: { record_status: '未录音' }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }, record: function () { var that = this ; var record_status = that.data.record_status; if (record_status === '未录音' ) { recorderManager.start({ duration: 60000, sampleRate: 44100, numberOfChannels: 1, encodeBitRate: 192000, format: 'mp3' , frameSize: 50 }) record_status = '录音中' } else if (record_status === '录音中' ) { recorderManager.stop(); } else if (record_status === '录音结束' ) { innerAudioContext.src = that.data.recorderPath.tempFilePath; innerAudioContext.play(); } else if (record_status === '录音播放中' ) { innerAudioContext.stop(); } recorderManager.onStop((res) => { record_status = '录音结束' ; console.log(res); that.setData({ record_status: record_status, recorderPath: res }) }); innerAudioContext.onPlay(() => { console.log( '录音播放中' ); record_status = '录音播放中' ; that.setData({ record_status: record_status }) }) innerAudioContext.onStop(() => { console.log( '录音播放停止' ); record_status = '录音播放停止' ; innerAudioContext.destroy(); that.setData({ record_status: record_status }) }) innerAudioContext.onEnded(() => { console.log( '录音播放结束' ); record_status = '录音播放结束' ; innerAudioContext.destroy(); that.setData({ record_status: record_status }) }) that.setData({ record_status: record_status }) } }) |
这个是控制台的输出