- createInnerAudioContext播放不完整?
代码片段: https://developers.weixin.qq.com/s/FoS9qZmt8s0s 全文内容为:”你向投资人演示商业计划时,对方打断说:“给你1分钟说清楚盈利模式!”你应如何回答?“ 只播到了:”你向投资人演示商业计划时“ 音频有8秒的时长,[图片] 在oncanplay回调里的innerAudioContext.duration只有2+秒[图片] 代码: // index.js Page({ data: { audioSrc: 'https://f.foundingaz.cn/api/files/audio/cherry_935b408fcf480c24d8411b2bbefbdd1e', innerAudioContext: null, errorMsg: '' }, initAudio() { console.log("🚀 ~ initAudio ~ initAudio:"); if (this.data.innerAudioContext) { this.data.innerAudioContext.destroy(); } const innerAudioContext = wx.createInnerAudioContext(); innerAudioContext.autoplay = false; innerAudioContext.src = this.data.audioSrc; innerAudioContext.onCanplay(() => { console.log('准备好了,可以开始播放', innerAudioContext.duration); }); innerAudioContext.onPlay(() => { console.log('开始播放'); this.setData({ errorMsg: '' }); }); innerAudioContext.onPause(() => { console.log('暂停播放'); }); innerAudioContext.onStop(() => { console.log('停止播放'); }); innerAudioContext.onEnded(() => { console.log('播放结束'); // 可以在这里处理播放结束后销毁实例的逻辑,如果需要的话 // if (this.data.innerAudioContext) { // this.data.innerAudioContext.destroy(); // this.setData({ innerAudioContext: null }); // console.log('音频实例已销毁'); // } }); innerAudioContext.onError((res) => { console.error('播放错误:', res.errMsg, res.errCode); this.setData({ errorMsg: `播放错误: ${res.errMsg} (错误码: ${res.errCode})` }); // 发生错误时,可以考虑销毁实例,避免资源占用 if (this.data.innerAudioContext) { this.data.innerAudioContext.destroy(); this.setData({ innerAudioContext: null }); console.log('音频实例因错误已销毁'); } }); this.setData({ innerAudioContext }); }, playAudio() { console.log("🚀 ~ playAudio ~ playAudio:", this.data.innerAudioContext); if (!this.data.innerAudioContext) { this.initAudio(); } if (this.data.innerAudioContext) { this.data.innerAudioContext.play(); } }, pauseAudio() { if (this.data.innerAudioContext) { this.data.innerAudioContext.pause(); } }, stopAudio() { if (this.data.innerAudioContext) { this.data.innerAudioContext.stop(); this.data.innerAudioContext.destroy(); this.setData({ innerAudioContext: null }); console.log('音频实例已销毁'); } }, onLoad() { this.initAudio(); }, onUnload() { if (this.data.innerAudioContext) { console.log('组件卸载,销毁音频实例'); this.data.innerAudioContext.destroy(); this.setData({ innerAudioContext: null }); } } }); // index.wxml <view class="audio-player-container"> <button bindtap="playAudio">播放</button> <button bindtap="pauseAudio">暂停</button> <button bindtap="stopAudio">停止并销毁</button> <view wx:if="{{errorMsg}}">错误: {{errorMsg}}</view> </view> // index.wxss .audio-player-container { display: flex; flex-direction: column; align-items: center; padding: 20px; } button { margin: 10px; padding: 10px 20px; } // index.json { "component": true, "usingComponents": {} }
星期三 17:09 - 小程序页面无法命名?
[图片]
2024-12-24