解决微信小程序 uni.createInnerAudioContext() 语音播放没有声音

本文讲述了如何修复使用uni.createInnerAudioContext创建的语音消息在部分iOS设备上静音模式下无声的问题,涉及微信提供的从2.3.0版本开始的setInnerAudioOption方法,并介绍了版本比较和兼容解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

uni.createInnerAudioContext() 创建的语音消息,在部分 ios 机型上播放没有声音

问题分析:

该手机开启了静音模式

问题解决:

对此问题,微信提供了如下解决方式,从 2.3.0 版本开始支持

canIUseWxAudio() {
	const version = wx.getSystemInfoSync().SDKVersion;
	if (this.compareVersion(version, '2.3.0') >= 0) {
		wx.setInnerAudioOption({
			obeyMuteSwitch: false
		})
	} else {
		wx.showModal({
			title: '提示',
			content: '当前微信版本过低,手机开启静音模式下可能会导致播放音频失败。'
		})
	}
},

/**
* 比较wx SDKVersion
* @param {String} v1 版本字符串
* @param {String} v2 版本字符串
* @returns {Number} v1>v2,返回1;v1<v2,返回-1;v1==v2,返回0
*/
compareVersion(v1, v2) {
	v1 = v1.split('.');
	v2 = v2.split('.');
	const len = Math.max(v1.length, v2.length);
	while (v1.length < len) {
		v1.push('0');
	}
	while (v2.length < len) {
		v2.push('0');
	}
	for (let i = 0; i < len; i++) {
		const num1 = parseInt(v1[i]);
		const num2 = parseInt(v2[i]);
		if (num1 > num2) {
			return 1;
		}
		if (num1 < num2) {
			return -1;
		}
	}
	return 0;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值