⼩程序getBackgroundAudioManager
⼩程序弃⽤了audio组件,转⽽提供了2种⾳频播放的⽅式 :createInnerAudioContext 和 getBackgroundAudioManager
所区别的是:
backgroundAudioManager 是 全局唯⼀的背景⾳频管理器
如果需要⾳乐类似QQ⾳乐那样,⼩程序在后台时,仍然在播放⾳乐 请使⽤ getBackgroundAudioManager 否则应该 使⽤普通⾳频API createInnerAudioContext。
踩的坑
我在使⽤ getBackgroundAudioManager 的时候出现了2种错误。
setBackgroundAudioState:fail title is nil!;at api setBackgroundAudioState …qq音乐不能播放
setBackgroundAudioState fail jsapi has no permission
对于第⼀个,需要我们设置⼏个属性(虽然我们可能⽤不上,但是必须要设置)
innerAudioContext.title =this.lyricTitle;//有值,但是不展⽰
innerAudioContext.singer ='暂⽆';//有值,但是不展⽰
innerAudioContext.src =this.src;
因为我在切换⾳乐的时候设置了 stop() ⽅法,只需要去除或者在 onPrev 的时候不执⾏就可以了。
console.log("下⼀⾸");
this.changeAudio(2,true);
})
...
changeAudio(type,isIOS){
if(!isIOS){//ios 端后台播放,stop后会报错
/* 清空当前内容 */
this.innerAudioContext.src="1";// 这⾥需要穿https 的路径
this.innerAudioContext.title ='暂⽆';//有值,但是不展⽰
this.innerAudioContext.singer ='暂⽆';//有值,但是不展⽰
verImgUrl ='img-cdn-qiniu.dcloud/uniapp/audio/music.jpg';//有值,但是不展⽰
this.innerAudioContext.stop();
Stop(function(){
console.log('停⽌播放');
})
}
}