В браузере Safari iOS11 (iOS10 и ниже работает), если я уйду и вернусь, иногда звуковой файл не воспроизводится. Если я продолжаю убираться и возвращаться, он в конечном итоге играет - но он продает все игровые звонки и пытается сыграть все в одном.
Я создал очень простую страницу тестирования. Кто-нибудь знает, почему?
<!DOCTYPE HTML>
<html>
<head>
<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1,minimum-scale=1,maximum-scale=1"/>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no" />
<style>
button { font-size:2em; }
</style>
<script>
var g_context, g_buffer;
function play() {
if (g_buffer) {
var source = g_context.createBufferSource();
source.buffer = g_buffer;
source.connect(g_context.destination);
source.start(0);
}
}
function ready(){
g_context = new webkitAudioContext();
var req = new XMLHttpRequest();
req.open("GET", "<*** insert your sound file path here ***>", true);
req.responseType = "arraybuffer";
req.onload = function(){
g_context.decodeAudioData(req.response,function(buffer){
g_buffer = buffer;
}, function(e){});
};
req.onerror = function(e){
console.log("fail to load", e);
};
try{req.send()}
catch(e){}
}
</script>
</head>
<body onload="ready()">
<button onclick="play()">play</button>
</body>
</html>
начиная с iOS11, мне тоже не удается в нее играть!