微信小程序背景音频管理器

514 阅读2分钟

功能描述

获取全局唯一的背景音频管理器。 小程序切入后台,如果音频处于播放状态,可以继续播放。但是后台状态不能通过调用API操纵音频的播放状态。

从微信客户端6.7.2版本开始,若需要在小程序切后台后继续播放音频,需要在 app.json 中配置 requiredBackgroundModes 属性。开发版和体验版上可以直接生效,正式版还需通过审核。

常用api

  1. BackgroundAudioManager.play()播放音乐,音频管理器处于暂停时调用。

  2. BackgroundAudioManager.onWaiting(function listener)监听音频加载中事件。当音频因为数据不足,需要停下来加载时会触发。结合 BackgroundAudioManager.onCanplay(function listener)一起使用,以提高用户体验。当音频文件较大时,需要一定时间加载音频文件,此时需要onWaiting和onCanplay来监听管理器。

  3. BackgroundAudioManager.onEnded(function listener)监听背景音频自然播放结束事件。可用于实现自动播放下一曲的功能。

  4. BackgroundAudioManager.onTimeUpdate(function listener)监听背景音频播放进度更新事件,只有小程序在前台时会回调。获取音频管理器当前播放进度,属性名为currentTime

常见问题

  1. 文件加载失败

    目前只支持的文件格式有:m4a, aac, mp3, wav。如果还是无法加载文件可尝试二次转换。

  2. 音频无法播放

    音频管理器实例需要赋值singer,coverImgUrl,title,src这些属性,不然无法正常播放,其中赋值src之后音频会自动播放。

  3. seek()进度跳转api不生效

    该api只能跳转到音频长度以内,使用时需要做好判断。

  4. 小程序切换到后台之后继续播放

    需要在 app.json 中配置 requiredBackgroundModes 属性。 要注意此功能上线需要审核,最好提前做好审核准备。

微信文档