小程序播放音频后台运行无法播放

发布于 7 年前作者 xiuyingsun14217 次浏览最后编辑 7 年前来自 ask

需求:

* 你希望有什么能力?

小程序在后台运行的时候能够继续进行音频播放。

小程序的语音播放功能,当小程序在前台运行时没有任何问题,但是当小程序后台运行时,createInnerAudioContext语音播放功能就无法使用,使用背景音乐播放接口播放的话,就会报没有权限错误。

* 你需要这个能力的场景是 ?

使用小程序进行收款消息语音播报的功能。微信买单可以实现,小程序退出后仍能实现买单信息语音播报。但是我们的小程序后台运行后就无法进行音频播放,无法提示用户具体的收款金额。

10 回复
guiyingcao
guiyingcao1 楼6 年前

加微信说吧

yanshi
yanshi2 楼6 年前

目前我应该是独家

gqiao
gqiao3 楼6 年前

楼主,我遇上了和你一样的问题。我已经找到解决办法,想和你探讨一下有没有更好的办法。我微信459085

ping52
ping524 楼6 年前

求分享

guming
guming5 楼6 年前

请问语音播报的问题解决了吗?

wei21
wei216 楼6 年前

后面怎么实现的呢?各位大佬们

taoyu
taoyu7 楼6 年前

在进入到后台继续播放之前设置的音乐是可以播放的。但是进入后台运行后,当播放完了,想重新设置新的src的时候,就会报上面截图中的错误,请问这个有办法解决吗?我们的业务是当有新订单时会调用playBackAudio方法,部分代码如下:

const playBackAudio =(url) => {

    console.log(‘set play’, url);

    return new Promise((resolve, reject) => {

        const audio = wx.getBackgroundAudioManager();

        audio.title = “收款语音播报”;

        audio.epname = “”;

        audio.singer = “”;

        // audio.onPlay(()=>{console.log(‘play’,audio.src)});

        var ok = false;

        audio.onEnded(() => {

            console.log(‘end’, audio.src);

            ok=true;

            resolve();

        })

        audio.onError((res) => {

            console.log(‘eeeee’, res.errMsg)

            ok=true;

            reject();

        })

        audio.onNext((res) => {

            console.log(‘next’, res)

            ok=true;

            resolve();

        })

        audio.onStop((res) => {

            console.log(‘stop’, res)

            resolve();

        });

        audio.src = url;

        audio.play();

    })

}

jun87
jun878 楼6 年前

敢问楼主有没有新的解决思路,求分享,这个问题困了我好久,好人

lei01
lei019 楼6 年前

@炒了个饭,你是怎么解决的?我试过用一段空白音频队列一直占用背景播放器,基本可以达到持续播放的效果,但不是很稳定,有时候会报权限错而停止。后来只能用音频播放接口,再开着屏幕长亮,让用户一直开着。