小程序支持播放和录制音频。小程序播放音频的方式有两种:内部音频和背景音频。
1.内部音频支持用户在使用小程序过程中播放音效;
2.背景音频支持在用户离开小程序后继续播放音效。
BackgroundAudioManager wx.getBackgroundAudioManager()
获取全局唯一的背景音频管理器。 小程序切入后台,如果音频处于播放状态,可以继续播放。但是后台状态不能通过调用API操纵音频的播放状态。
从微信客户端6.7.2版本开始,若需要在小程序切后台后继续播放音频,需要在 app.json 中配置 requiredBackgroundModes
属性。开发版和体验版上可以直接生效,正式版还需通过审核。
(二)内部音频
InnerAudioContext wx.createInnerAudioContext()
基础库 1.6.0 开始支持,低版本需做兼容处理。
创建内部 audio
上下文 InnerAudioContext
对象。
处理音频中断事件
以游戏为例,在游戏中,经常有播放使用内部音频来播放游戏背景音乐的场景。音频中断事件指的是在游戏期间,音频被系统打断时触发的事件。音频中断事件分为中断开始和中断结束事件,分别使用 wx.onAudioInterruptionBegin() 和 wx.onAudioInterruptionEnd() 来监听。
以下事件会触发音频中断开始事件:接到电话、闹钟响起、系统提醒、收到微信好友的语音/视频通话请求。被中断之后,小游戏内所有音频会被暂停,并在中断结束之前都不能再播放成功。
中断结束之后,被暂停的音频不会自动继续播放,游戏可监听音频中断结束事件,并在收到中断结束事件之后调用背景音乐继续播放。
如果游戏的逻辑强依赖音乐的播放(如音乐类游戏),需要在音频开始中断的时候暂停游戏