首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
微信小程序实验:图片与声音
📅 2026/10/14 18:40:40
✍️ 爱科研究院
👁 阅读 3,247
本次基于微信小程序完成「图片点击切换播放 / 暂停音乐」小案例使用image组件展示图片wx.createInnerAudioContext创建音频上下文实现音频控制资源存放在云开发云存储避免图片、音频占用小程序主包体积同时完成作业拓展设置播放倍速、控制台输出播放位置与播放速率。知识点数据绑定、事件绑定、页面生命周期onLoad、InnerAudioContext 音频 API、云存储资源管理。开发环境微信开发者工具小程序基础库3.17微信云开发云存储一、需求说明页面展示宝塔山图片标题文字红色居中粉色边框包裹内容。点击图片交替播放 / 暂停背景音乐。第一次点击播放再次点击暂停循环切换。拓展需求音频设置慢速播放每次点击播放暂停控制台打印当前播放位置、当前播放速率。图片、音频不上传到本地项目全部托管到云开发云存储减小小程序包体积。为什么图片音频放云存储 微信小程序主包 / 分包限制 2M如果把图片、音频全部放在项目内很容易超出大小限制。放到云存储代码中引用网络 https 地址资源不打包进小程序解决包体积超限问题。二、前期准备云开发上传资源创建小程序项目选择不使用云服务、不使用模板。顶部工具栏点击【云开发】开通云开发环境。进入【存储】→【存储权限】权限设置所有用户可读仅创建者可读写。存储管理新建两个文件夹images存放图片yanan.webp宝塔山图片audios存放音频huiyanan.mp3分别上传图片和音频文件。点击文件复制下载地址https 链接注意⚠️不要复制 FileID。注意如果权限是仅创建者可读下载链接会过期需要定期重新复制链接。三、完整代码实现1.app.json 全局配置开启 webview 渲染引擎注册页面配置自定义导航栏{ pages: [ pages/index/index ], window: { navigationBarTextStyle: black, navigationStyle: custom }, style: v2, renderer: webview, componentFramework: glass‑easel, sitemapLocation: sitemap.json, lazyCodeLoading: requiredComponents }2. pages/index/index.wxml 页面结构!--index.wxml-- navigation-bar title图片与声音 back{{false}} colorblack background#FFF/navigation-bar view classbox container view classtitle宝塔山/view image src{{imgSrc}} modewidthFix bind:tapsing / /view3. pages/index/index.js 业务逻辑// index.js let innerAudioContext; let start false; Page({ data: { imgSrc:https://636c-cloud1-d5gb06pyie8c378a1-1505494893.tcb.qcloud.la/images/yanan.webp?sign582368d3ca4f4cf010e998518bf84391t1791869604 }, onLoad() { innerAudioContext wx.createInnerAudioContext(); innerAudioContext.src https://636c-cloud1-d5gb06pyie8c378a1-1505494893.tcb.qcloud.la/audios/huiyanan.mp3?sign28501cde6f18cd842c642e1fec314f5bt1791869556 innerAudioContext.playbackRate 0.5; }, sing() { start !start; if (start true) { innerAudioContext.play(); } else { innerAudioContext.pause(); } console.log(当前音频的播放位置, innerAudioContext.currentTime); console.log(当前音频播放速率, innerAudioContext.playbackRate); } })4.pages/index/index.wxss 页面局部样式/**index.wxss**/ page { height: 100vh; display: flex; flex-direction: column; }5.app.wxss 全局公共样式/**app.wxss**/ .container { display: flex; flex-direction: column; align-items: center; box-sizing: border-box; } .box { margin: 20rpx; padding: 20rpx; border: 2rpx solid pink; } .title { font-size: larger; font-weight: bolder; text-align: center; margin-bottom: 30rpx; color: red; }四、关键 API 知识点总结wx.createInnerAudioContext()创建内部音频上下文用于播放本地或者网络音频play()播放、pause()暂停。 innerAudioContext.src设置音频资源地址网络 / 本地innerAudioContext.playbackRate播放速率范围 0.5‑2实现快放、慢放 innerAudioContext.currentTime获取当前播放位置单位秒 onError(callback)音频异常监听调试排错必备页面生命周期 onLoad(options)页面加载时触发一个页面只会执行一次适合做资源初始化这里我们在 onLoad 里面初始化音频对象。数据绑定 {{变量名}}src{{imgSrc}}把 js 的 data 中数据渲染到 wxml 标签属性。事件绑定 bind:tap函数名给组件绑定点击触摸事件用户点击组件后执行 js 内对应的事件处理函数五、常见踩坑记录排错❌报错Unable to decode audio data无法解码音频原因 1图片链接和音频链接写反把图片当成音频加载。原因 2云存储权限没有设置为「所有用户可读」小程序没有权限读取音频文件。原因 3下载链接过期重新复制云存储下载地址。六、运行效果七、总结本小程序案例使用image组件和InnerAudioContext音频 API实现点击图片交替播放、暂停音频。图片与音频存放在云存储避免小程序包超限。运用数据绑定渲染图片bind:tap绑定点击事件在onLoad生命周期初始化音频对象设置慢速播放点击时控制台打印播放位置和播放速率
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/14 18:40:40
STM32驱动28BYJ-48步进电机:接线、相序与避坑实战
2026/10/14 18:40:40
51单片机数码管时钟制作:从电路到C程序完整解析
2026/10/14 18:40:40
STM32驱动28BYJ-48步进电机:八拍换相与ULN2003避坑指南
2026/10/14 19:51:23
AI Agent技能包设计:从Prompt到工作流编排的工程化落地
2026/10/14 19:51:23
社区二手回收小程序源码部署配置与订单状态机改造攻略
2026/10/14 19:51:23
电流采样零点校准与电流换算全流程实测解析
2026/10/14 19:51:23
为什么抛弃 DAG?NovelForge 代码式工作流系统的设计思想与实践
2026/10/14 19:51:22
Open Model Zoo:面向边缘部署的工业级推理套件
2026/10/14 19:40:52
iso8211lib解析S-57电子海图:从二进制格式到坐标提取指南
2026/10/14 0:02:01
Oracle 19c Windows客户端安装配置与连接排错指南
2026/10/14 0:02:01
React Native截图优化:解决Android兼容性问题
2026/10/14 0:02:01
金属锈蚀速率计算模型与防护方案优化实践
2026/10/13 12:25:09
流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南
2026/10/14 18:35:19
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别
2026/10/14 14:52:59
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容
2026/10/12 19:53:23
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/11 21:41:11
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/11 23:43:10
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)