- 当前 Bug 的表现(可附上截图)
已经参照小程序官方API,在app.json中设置如下参数:
"requiredBackgroundModes": ["audio"]
但小程序后台运行时,vConsole出现如下错误:
- 预期表现
当手机锁屏或者熄屏,小程序退到后台运行时,仍然能播放音频
- 复现路径
当小程序前台运行(手机处于打开状态)时,能够播放音频;但当手机锁屏或者熄屏,小程序退到后台运行时,无法播放,并且vConsole出现上面截图的错误
框架类型 | 问题类型 | API/组件名称 | 终端类型 | 微信版本 | 基础库版本 |
---|---|---|---|---|---|
小程序 | Bug | getBackgroundAudioManager | 客户端 | 6.7.2 | 2.2.3 |
2 个回答
小程序切后台之后不能调接口改变播放状态,看错误信息是你调用了setBackgroundAudioState
你好,未调用setBackgroundAudioState,请参考上面回复,谢谢!
小程序切到后台之后不能主动开始播放,只支持前台时播放,切后台继续播放的情形
意思是如果音频正在前台播放,切换到后台是可以继续播放的。但是小程序切换到后台之后,无法主动播放新的音频,是吗?
请问“收款小账本”,“微信支付商户助手”如何实现小程序切换到后台后,仍能语音播报?现在我们产品也急需这个功能,烦请提供可参考的技术方案。
谢谢!
语音播报是由微信App完成的,不是小程序直接实现的
请问小程序有计划实现这个功能并提供API吗?我看社区里面,有这个功能需求的还非常多,而且有实际的应用场景。
你好,请提供一下能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
你好,我需要实现语音播报功能,使用小程序 API (websocket + getBackgroundAudioManager)实现。每当有新订单时,后台会将订单数据转换为音频,并将音频地址通过websocket传回给小程序端,小程序使用getBackgroundAudioManager 播放。
代码片段:
wx.onSocketMessage(function (res) {
console.log('收到服务器语音播报地址:' + res.data)
const backgroundAudioManager = wx.getBackgroundAudioManager()
backgroundAudioManager.title = 'Test'
backgroundAudioManager.src = res.data// 设置了 src 之后会自动播放
backgroundAudioManager.onPlay(() => {
console.log('开始播放收款语音')
})
})