我使用XMLHttpRequest預載遊戲文件。如果WebAudio不支持,我會回到使用音頻元素。從對象URL播放聲音
在Android上,它在Firefox中正常工作,但聲音無法在Chrome中播放。下面是一些測試代碼:
document.addEventListener('touchstart', function(event) {
event.preventDefault();
if(window.audio) window.audio.play();
console.log(window.audio);
});
window.audio = null;
var xhr = new XMLHttpRequest();
xhr.open('GET', '/sounds/shotgun.webm', true);
xhr.responseType = 'arraybuffer';
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
var blob = new Blob(new Array(new Int8Array(xhr.response)), { type: 'audio/webm' });
var url = window.URL.createObjectURL(blob)
window.audio = new Audio();
window.audio.src = url;
console.log('sound loaded');
}
};
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send();
我懷疑這是與該對象鏈接的Android問題上的Chrome ...
反正我在尋找一種方式使用緩存播放聲音的Android版Google Chrome來自XMLHttpRequest。
你有沒有得到任何進一步的呢? –