ios端微信瀏覽器中自動播放HTML5的audio問題
阿新 • • 發佈:2021-12-13
前言
方法一:JS-SDK
核心原理: 在微信的JS-API 中 play 一下 audio 即可達到自動播放的目的(應該是微信自己做了處理)
引入檔案後,首先通過wx.config介面注入許可權驗證配置,然後在ready中play一下audio。
<!-- 當使用方法1時必須載入 JS-SDK 的 JS 檔案 --> <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> <script> function autoPlayAudio1() { wx.config({// 配置資訊, 即使不正確也能使用 wx.ready debug: false, appId: '', timestamp: 1, nonceStr: '', signature: '', jsApiList: [] }); wx.ready(function() { let audio = document.createElement('audio'); //生成一個audio元素 audio.src = 'https://freetyst.nf.migu.cn/public/product08/2018/03/06/2012%E5%B9%B402%E6%9C%8820%E6%97%A5%E6%B5%B7%E8%9D%B6%E5%86%85%E5%AE%B9%E5%87%86%E5%85%A59%E9%A6%96/%E5%85%A8%E6%9B%B2%E8%AF%95%E5%90%AC/Mp3_64_22_16/%E5%BA%90%E5%B7%9E%E6%9C%88-%E8%AE%B8%E5%B5%A9.mp3'; audio.play();// 自動播放 }); } </script>
vue-cli 腳手架程式碼:
router.afterEach((to, from, next) => { let wx = Vue.prototype.$wechat; let _url = window.location.href.split('#')[0]; // 使用JS-SDK的頁面必須先注入配置資訊 Vue.prototype.$http('/mobile/wechat/jsconfig?url=' + encodeURIComponent(_url)).then(res => {if (res.status) { // 注入配置 Vue.prototype.$wechat.initConfig(res.data); } }) wx.ready(() => { let audio = document.createElement('audio'); // 生成一個audio元素 audio.src = 'https://freetyst.nf.migu.cn/public/product08/2018/03/06/2012%E5%B9%B402%E6%9C%8820%E6%97%A5%E6%B5%B7%E8%9D%B6%E5%86%85%E5%AE%B9%E5%87%86%E5%85%A59%E9%A6%96/%E5%85%A8%E6%9B%B2%E8%AF%95%E5%90%AC/Mp3_64_22_16/%E5%BA%90%E5%B7%9E%E6%9C%88-%E8%AE%B8%E5%B5%A9.mp3'; audio.play(); // 自動播放 }) })
注意事項:
1、wx.ready 好像一定要放在main.js中的wx.config()之後執行
方法二:WeixinJSBridge.invoke
以前用的是WeixinJSBridge.invoke方法,繫結getNetworkType事件,返回中拿到網路資訊,然後在根據網路資訊是wifi還是4G等來播放音訊。
mounted() { alert(typeof WeixinJSBridge); WeixinJSBridge.invoke('getNetworkType', {}, (e) => { alert(e.err_msg); // 在這裡拿到 e.err_msg, 這裡面就包含了所有的網路型別 let audio = document.createElement('audio'); //生成一個audio元素 audio.src = 'https://freetyst.nf.migu.cn/public/product08/2018/03/06/2012%E5%B9%B402%E6%9C%8820%E6%97%A5%E6%B5%B7%E8%9D%B6%E5%86%85%E5%AE%B9%E5%87%86%E5%85%A59%E9%A6%96/%E5%85%A8%E6%9B%B2%E8%AF%95%E5%90%AC/Mp3_64_22_16/%E5%BA%90%E5%B7%9E%E6%9C%88-%E8%AE%B8%E5%B5%A9.mp3'; // 自動播放 audio.play(); }); }