ユーザーがウェブサイトを終了したときにオーディオを再生する方法があるかどうか疑問に思っていますか?
例えば。「ご来店ありがとうございます」など
いいえ、ユーザーが Web サイトを離れたときにオーディオを確実に再生することはできません。( を使用して)開始することはできますがonbeforeunload
、再生が終了しません。
真剣に、もしそうなら、それは人々を苛立たせるだけです. :-)
私は少しテストを行い(まだHTML5全体の初心者です)、この解決策を思いつきました:
<script>
function myLoadHandler(evt)
{
var audio_file1 = document.getElementById('audioID');
audio_file1.volume = 0
audio_file1.play();
}
if ("onpagehide" in window) {
window.addEventListener("pageshow", myLoadHandler, false);
} else {
window.addEventListener("load", myLoadHandler, false);
}
</script>
<script>
function playAudio() {
var audio_file1 = document.getElementById('audioID');
audio_file1.volume = 1
audio_file1.play();
}
</script>
<body onunload="playAudio()">
<div>
<div>
<audio id="audioID" src="your_audio.wav" preload="auto"></audio>
</div>
</div>
</body>
最新の Chrome と Firefox でテストしました。Firefox でのみ動作します。Chrome は、javascript が実行できるよりも速くすべてのリソースをメモリから削除すると思います。
もう 1 つの奇妙なことは、preload="auto" を使用しても、オーディオが実際に再生された後に (スクリプトまたは UI から) バッファリングされているように見えることです。そのため、ボリューム 0 でロード時に再生します。
そしてもう1つ-前の回答で誰かが言及したように-それはおそらく迷惑になるでしょう. 注意して使用してください。