小程序播放音频后台运行无法播放
发布于 5 年前 作者 xiuyingsun 13952 次浏览 来自 问答

需求:

* 你希望有什么能力?

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

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

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

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

10 回复

加微信说吧

目前我应该是独家

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

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

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

在进入到后台继续播放之前设置的音乐是可以播放的。但是进入后台运行后,当播放完了,想重新设置新的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();

    })

}

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

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

回到顶部