WebAudioAPIを使用して簡単なHTML5Webアプリを開発しました。ページはWebクリップとして保存され、全画面表示を有効にするためにapple-mobile-web-app-capableメタタグが追加されます。Safariではすべてが正常に機能し、サウンドは意図したとおりに再生されます。ただし、ホームボタンを押してアプリをバックグラウンド状態にしてから再開すると、ホームボタンが応答しなくなり、問題を解決する唯一の方法はハードリセットを行うことです。
これが私のコードです:
<head>
<meta name="apple-mobile-web-app-capable" content="yes" />
<script>
var context;
var buffer;
function init() {
if ('webkitAudioContext' in window) {
context = new webkitAudioContext();
var request = new XMLHttpRequest();
request.open('GET', 'sounds/sound.mp3', true);
request.responseType = 'arraybuffer';
request.addEventListener('load', function () {
var request = event.target;
buffer = context.createBuffer(request.response, false);
}, false);
request.send();
}
}
function play() {
var source = context.createBufferSource();
source.buffer = buffer;
source.connect(context.destination);
source.start(0);
}
</script>
</head>
<body onload="init()">
<button onclick="play()">Play</button>
</body>