用户对于小程序的音频能力有着各种各样的要求:退出小程序时,想要安静地听音乐而不被打扰;最好能在系统播放面板上控制小程序音频;当电话或闹钟响起时,小程序音频能自动暂停……开发者是不是感觉有些不知所措?那么微信小程序音频该如何开发呢?一起来看看小客多微商城小编整理的官方内部音频及背景音频开发教程吧。
小程序支持播放和录制音频,小程序播放音频的方式有两种:内部音频和背景音频。
1.内置音频支持用户在使用小程序时播放音效;
2.背景音频支持用户离开小程序后继续播放音效。
1.播放音频和背景音频
01.播放背景音频
后台音频接口适用于音乐小程序,例如“音乐小站”、“QQ音乐迷你电台”等。
通过wx.()接口可以获取全局唯一的背景音频管理器,该管理器用于实现所有与背景音频相关的操作。
微信中后台音频只有一个,一个小程序开始播放后台音频后,会持有后台音频播放器。只要当前小程序持有后台音频播放器,即使小程序进入后台(即用户离开小程序),也可以继续使用后台音频接口,当前小程序不会被微信主动回收;一旦后台音频播放器被抢占(可能是其他小程序,微信内的其他音乐,或者其他APP的音乐),小程序就不会再持有后台音频播放器。
▲(音乐小站小程序)
02.系统播放面板的显示与控制
小程序音频接口支持通过设置歌名、专辑名、歌手名、封面图等属性,将其显示在系统音乐播放器面板中,通过响应系统面板的点击事件( , ),实现列表播放。
▲(系统播放面板控制效果)
内置音频
01.播放内部音频
内置音频适用于所有小程序,特别是游戏类的小程序,例如《跳一跳》。
可以通过wx.ext()接口创建音频实例。

每个小程序可以同时容纳和播放多个内部音频,但是一旦小程序进入后台(),所有内部音频将暂停,无法再次播放,直到用户回到前台(即打开小程序)。
02. 静音模式下也能播放
在 iOS 中,内置音频默认遵循静音键设置。如果您希望静音时也能播放,可以将其设置为。
系统没有统一的静音开关,目前不支持该功能。
03.处理音频中断事件
以游戏为例,游戏中经常会有使用内部音频播放游戏背景音乐的场景,音频中断事件是指游戏过程中音频被系统中断时触发的事件,音频中断事件分为中断开始事件和中断结束事件,分别使用 wx.egin() 和 wx.nd() 进行监听。
以下事件会触发音频中断开始事件:接到电话、闹钟响起、系统提醒、收到微信好友的语音/视频通话请求。中断后,小游戏内所有音频将暂停,且无法再次成功播放,直至中断结束。
中断结束后,暂停的音频不会自动继续播放,游戏可以监听音频中断结束事件,并在接收到中断结束事件后调用背景音乐继续播放。
如果游戏的逻辑强烈依赖于音乐的播放(例如音乐游戏),则需要在音频开始中断时暂停游戏。
(跳跃游戏)
2. 录制音频
通过wx.接口可以获取全局唯一的录音管理器。
01. 同时录制和上传
默认录制完成后会生成一个本地文件,并通过回调返回本地文件的地址。对于实时性要求较高的小程序(如“面对面翻译”),可以通过设置参数来设置一帧的大小,录制完指定帧大小的内容后,会通过回调返回该段数据。
注意:历史接口已弃用
以上接口已经可以满足所有音频相关的需求了。除了以上接口之外,小程序中还有几个音频相关的接口(如wx.、wx.、wx.等),由于这些接口在早期设计上存在一些缺陷,小客多微商城小编不建议继续使用。