uni-app H5解决IOS音频不能自动播放的问题

使用uniapp提供的api,在IOS的微信客户端中audio不能播放,网上有不同的说法,本人首次使用uniapp,摸索了几个小时,终于搞明白通过微信的config接口和ready接口配置才生效

先看uniapp的uni.createInnerAudioContext() 接口示例

const innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.autoplay = true;
innerAudioContext.src = 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3';
innerAudioContext.onPlay(() => {
  console.log('开始播放');
});
innerAudioContext.onError((res) => {
  console.log(res.errMsg);
  console.log(res.errCode);
});

这样在pc和安卓微信客户端是可以自动播放的,IOS就不行了。

所以得通过集成微信JS-SDK验证来解决

通过npm安装方式

npm install jweixin-module --save

然后再引用jweixin-module,这个看自己需求,可以再main.js上定义或者再单独页面上,我本次是直接再首页引用

<script>
	var jweixin = require('jweixin-module');
	export default {
		components: {},
		data() {
			return {

			}
		},
		onLoad: function (option) {

		},

		},
		mounted() {
	
		},
		methods: {
			
		}
	}
</script>

接下来直接上整块代码

<script>
	var jweixin = require('jweixin-module');
	export default {
		components: {},
		data() {
			return {}
		},
		onLoad: function (option) { 
			// this.creatAudio();
		},
		created(){

		},
		mounted() {
			this.creatAudio();
		},
		methods: {
			creatAudio(){
				const innerAudioContext = uni.createInnerAudioContext();
                innerAudioContext.autoplay = true;
                innerAudioContext.src = 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3';
                innerAudioContext.onPlay(() => {
                  console.log('开始播放');
                });
                innerAudioContext.onError((res) => {
                  console.log(res);
                });
				
				jweixin.config({});// 不做任何签名验证都可以
				jweixin.ready(function(){
					WeixinJSBridge.invoke('getNetworkType', {}, function(e){  
						innerAudioContext.play();
					})
				})
			},
	
		}
	}
</script>

首次实现,亲测有效,希望能帮到需要的人,本人并非搞前端的,只是自己遇到需要做个H5背景音频自动循环播放的功能,有错误请指正!有用处麻烦点个赞。。。

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值