The Web Audio autoplay policy will be re-enabled in 音频无法播放
原因
1. https://developers.google.com/web/updates/2017/09/autoplay-policy-changes
2. The Web Audio autoplay policy will be re-enabled in Chrome 70 (October 2018). Please check that your website is compatible with it. https://goo.gl/7K7WLu
解決方案1
var url = 'http://yourdomain/music';
var context = new AudioContext();
var req = new XMLHttpRequest();
req.open('GET', url, true);
req.responseType = 'arraybuffer';
var music = {};
req.onload = function () {
context.decodeAudioData(req.response, function (buf) { // 將拿到的audio解碼轉為buffer
var getSource = function () { // 創建source源。
var source = context.createBufferSource();
source.buffer = buf;
source.connect(context.destination);
return source;
};
music.start = function () { // 游戲開始
console.log('hhh')
getSource().start();
};
music.start();
},
(error) => {
if (window.console && window.console.error) {
window.console.error(`音頻: ${url} 讀取錯誤`, error);
hasWebAudioAPI.data = false;
}
});
};
req.send();
方案2
<audio id="player" autoplay>
<source src="audio/source.mp3" type="audio/mp3">
</audio>
// 需要用戶點擊一次屏幕
document.addEventListener('click', musicPlay);
function musicPlay() {
document.getElementById('player').play();
document.removeEventListener('click', musicPlay);
}
轉載于:https://juejin.im/post/5d020e61e51d4555e372a5dd
總結
以上是生活随笔為你收集整理的The Web Audio autoplay policy will be re-enabled in 音频无法播放的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [译] Go: 理解 Sync.Pool
- 下一篇: kubernetest master 节