问题描述
在使用createInnerAudioContext()
创建一个播放后,真机环境测试IOS不可以在用户处于静音的情况下进行播放,安装手机则可以进行自动播放。尝试过将autoplay
设置为true
以及obeyMuteSwitch
设置为false,但是都发现不行!可以将下面代码注释写着解决IOS无法播放音频问题
直接copy到项目中使用。切记使用wx.setInnerAudioOption
,uni-app中没有该方法。
解决代码
<script>
const innerAudioContext = uni.createInnerAudioContext();
...
onLoad() {
this.playViow(url);
},
methods: {
playViow(url) {
if (url) {
if (this.lastRecord == url && !innerAudioContext.paused) {
innerAudioContext.stop(); // 停止
return;
}
this.lastRecord = url; // 将路径赋值给定义的变量好做判断
innerAudioContext.src = url; // 配置音频播放路径
innerAudioContext.play(); // 播放
innerAudioContext.loop = true // 是否循环播放
innerAudioContext.autoplay = true
innerAudioContext.volume = 0.3
innerAudioContext.obeyMuteSwitch = false
}
// 解决IOS无法播放音频问题
var music = wx.setInnerAudioOption({
obeyMuteSwitch: false,
success: function (res) {
console.log("开启静音模式下播放音乐的功能");
},
fail: function (err) {
console.log("静音设置失败");
},
});
},
}
...
</script>