问题描述

在使用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>
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐