当前位置: 首页 > news >正文

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": {}
}

相关文章:

  • 榕壹云外卖跑腿系统:基于Spring Boot的开源生活服务平台技术解析
  • STM32 GPIO 寄存器开发
  • OCCT基础类库介绍:Modeling Algorithm - Topological Tools
  • 今天我想清楚了
  • 无需公网IP:Termux+手机+内网穿透实现Minecraft远程多人联机
  • 基于大数据技术的在UGC数据分析与路线推荐的研究
  • ArcGIS中利用泰森多边形法分析站点与流域占比
  • VTK知识学习(54)- 交互与Widget(五)
  • ES 索引加载 vs BulkLoad
  • function ‘as_cholmod_sparse‘ not provided by package ‘Matrix‘
  • FreeCAD创作参数化凹形和水波纹式雨水箅子
  • 意法STM32F103C8T6 单片机ARM Cortex-M3 国民MCU 电机控制到物联网专用
  • Windows系统提示“mfc140u.dll丢失”?详细修复指南,一键恢复程序运行!
  • 智能制造——解读 51页制造业数据治理主数据管理系统建设方案【附全文阅读】
  • 从零Gazebo中实现Cartographer算法建图(新目录)
  • 如何使用 mkimage 工具生成 uImage 文件(RISC-V 环境)
  • 使用 Rust Clippy 的详细方案
  • JS使用~、>>、<<、>>>、|来取整,有啥区别
  • 软件技术专业的出路在哪
  • 【浏览器插件】如何开发一个Chrome浏览器插件
  • 常见的电子商务网站网址/新乡搜索引擎优化
  • 郑州seo线下培训/网站推广和优化的原因网络营销
  • 陕西中交基础建设有限公司网站/长沙谷歌seo收费
  • 公司网站设计欣赏/安徽seo报价
  • 网站建设的作用/seo网站排名优化工具
  • 怎么做卖辅助网站/电脑培训机构