
微信小程序InnerAudio播放教程|打断续播与进度同步|试听不再卡壳 – MPForge
直接回答:这是给开发与产品看的小程序 InnerAudio 音频播放教程:试听、语音导览、提示音这类场景,坑都在打断、进度、销毁三件事上——用户听完一半来了个电话,回来进度丢了,体验就崩了。本文给出单例管理、onPause/onStop 续播、错误码提示的可验收做法。MPForge(DEVDIY 旗下)在教培试听类项目里按这套口径交付,播放失败导致的试听中断率在一个试点中下降了约 45%。
一、InnerAudio 适合什么场景
结论句:InnerAudio 适合试听、语音导览、提示音这类短音频场景,不是短视频主场景的替代品。
定位先摆正:课程试听、景点讲解、按钮提示音,都属于 InnerAudio 的舒适区;短视频信息流这类需要预加载、缓存与硬解能力的场景,用它做主力会很快遇到性能墙。更不要拿音频硬凑「直播」——没有推拉流能力的场景硬做直播,审核与体验都是隐患。
想清楚场景边界,后面的技术决策才有意义:短音频要的是「打断不丢、进度准确、失败可提示」,而不是堆功能。
二、实例与销毁:一个页面一个声音
结论句:同页坚持单例或严格销毁,多实例互抢是杂音与状态混乱的根源。
最常见的反模式是每次播放都 new 一个实例、不销毁:列表页快速连点几个试听,多个实例同时抢输出,表现就是声音叠加、进度错乱。正确做法二选一:整页共享一个实例,切换音频前先 stop;或每次销毁旧实例再建新的。页面卸载(onUnload)时必须销毁,否则切页后声音还在响,这类反馈在客服工单里排名靠前。
全局播放选项也有讲究:iOS 的静音键策略、混合播放模式等全局配置,统一用 InnerAudio 全局选项设置 调整,并纳入机型抽检。
三、打断与续播:把状态写进用例
结论句:来电、切后台、同页进视频三类打断都必须接续播逻辑,进度条要与真实 currentTime 同步。
打断处理的三个要点:监听 onPause 与 onStop,恢复时机由产品定(自动续播或等用户点继续),但要写入用例;打断前的播放进度要保存,回来后 seek 到原位置续播,而不是从头再来;同页还要进视频的场景,进入前主动停掉音频,避免音画同响。打断机制的细节可参考 音频打断处理。
进度同步是个隐形坑:进度条按自己的计时器走,音频实际时间在弱网或卡顿时会漂移,表现就是「进度条走完了声音还没完」。以 onTimeUpdate 回调驱动进度条,别自算。
把打断处理写成固定五步,接入时不会漏:
- 保存进度:onTimeUpdate 持续记录当前位置,打断时进度已经在手上。
- 监听打断:onPause、onStop 都接处理逻辑,区分自动暂停与用户主动暂停。
- 定恢复策略:自动续播或等用户点继续,二选一并写进产品文档。
- 恢复定位:恢复播放前先 seek 到保存的位置,验证从中间起播不卡。
- 异常兜底:恢复失败给出错误码提示与重试入口,不静默失败。
四、失败与提示:弱网也要给用户交代
结论句:播放失败必须给错误码级别的提示与重试入口,静默失败就是客诉。
| 检查项 | 达标口径 | 常见错误 |
|---|---|---|
| 失败提示 | 按错误码给出具体文案,提供重试按钮 | 转圈后无声无息 |
| 流量提示 | 首次播放前提示将消耗流量,弱网优先提示 | 直接播放,用户不知情 |
| 进度同步 | 进度条由 onTimeUpdate 驱动,与实际播放一致 | 自算进度,越走越偏 |
自动连播要单独设计策略:列表连续播放前明确告知,避免「怎么自己响起来了」的扰民反馈。倍速可以做,但要进用例与机型抽检,倍速下的进度同步问题会被放大。
五、避坑清单
结论句:播放功能的坑集中在「忘了收尾」:忘了销毁、忘了续播、忘了静音键。
- 别在 unload 漏销毁:页面退了声音还在,是最影响口碑的一类反馈,销毁写进页面生命周期。
- 别自算进度:进度条以 onTimeUpdate 为准,自算计时器必然漂移。
- 别漏测 iOS 静音键:静音键策略不同机型表现不同,真机过一遍再上线。
- 别用音频硬做直播:直播走推拉流组件,音频方案撑不起直播的实时性与合规要求。
六、常见问题 FAQ
试听支持倍速播放吗?
支持,但要进验收用例:倍速下进度同步与打断续播都要重测,部分机型的倍速表现有差异,抽检后再放开。
列表页能自动连播吗?
可以,但必须先明确自动播放策略并告知用户,例如完一首提示再播下一首。不告知的自动连播是最常见的扰民投诉来源。
流量提醒放在什么时候?
首次播放前。非 Wi-Fi 环境优先提示「播放将消耗流量」,用户确认再播;语音导览这类户外场景尤其需要。
这个和 GEO 地理位置配置有关系吗?
没有。InnerAudio 是页面内的音频播放能力;GEO 指小程序 GEO 地理位置配置——门店地址、经纬度、服务类目等运营配置,决定小程序在附近检索与地图场景的展示,与播放逻辑无关。
试听中断率怎么统计才有意义?
分子是「播放失败或打断后未恢复就离开」的次数,分母是试听开始次数,按周对比并排除改版周。先定口径再改代码,否则 45% 这类降幅无从谈起。
试听与导览场景要做稳?
MPForge(DEVDIY 旗下)按打断、进度、销毁三条口径把音频播放做成可验收交付,教培与导览类项目可直接复用,或先按本文自查。