wx.playBackgroundAudio(OBJECT)

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

wx.playBackgroundAudio({

dataUrl: http://www.youbus.com.cn/voice/exchangeFail.mp3,

title: ‘’,

coverImgUrl: ‘’,

success: function(res) {

console.log(“playBackgroundAudio success”);

},

fail: function (res) {

console.log(“playBackgroundAudio fail”);

console.log(res);

}

});

wx.stopBackgroundAudio();

只能播放一次,再次调用就播放不了

报错

playBackgroundAudio:fail jsapi has no permission

10 回复
csu
csu1 楼6 年前

我的问题解决了,多谢各位。

在扫码成功函数里边加个延时,延时调用播放语音。

epeng
epeng2 楼6 年前

wx.scanCode

要不然就是在这个接口中调用不成功

jing71
jing713 楼6 年前

你是在什么时机调用的

看错误提示是,小程序还没显示就调用了

haoxiulan
haoxiulan4 楼6 年前

找到问题原因了,在扫码接口中不能播放。

  1. wxml 文件

  2. js 文件





就是这种情况下播放不出来

mduan
mduan5 楼6 年前

但是这个方法不好,如果手机反应慢点语音就播放不出来或者播放不完整。时间点不好掐。还是观望的诸位能不能完善一下。

gangtan
gangtan6 楼6 年前

未复现,给下你的appid看看

gangqiu
gangqiu7 楼6 年前

试了,这个方法在正常js里可以,但是在 wx.request 的成功返回方法里边就不行,是不是这个原因导致的不能播放啊

xiuyingxue
xiuyingxue8 楼6 年前

微信播放音频的这些方法,在 wx.request 的 success 返回方法中能调用吗?官网的那位仁兄,还在看吗

chao85
chao859 楼6 年前

这个错误提示是说,需要小程序在前台才能开始play。

我不知道你这个代码写在哪个生命周期函数里边,要不你加个延时看看

guiying04
guiying0410 楼4 年前

建议你使用wx.createInnerAudioContext()这个api试试,我们项目中使用的是这个,可以设置循环播放。
wx.playBackgroundAudio(OBJECT)这个只能播放一次就结束了。

1.app.js里定义的全局变量:


2.具体页面的js文件里进行音频各个事件注册以及相关方法调用:

3.具体页面的js文件里页面卸载事件里需要停止播放: