我想知道当用户退出我的网站时是否有办法播放音频?
例如。“感谢访问等。”
不,当用户离开网站时,您无法可靠地播放音频。尽管您可以启动它(使用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 可以执行的要快。
另一个奇怪的事情是,即使使用 preload="auto",音频似乎在播放后实际上会缓冲(来自脚本或 UI),所以这就是为什么我在加载音量 0 时播放它。
还有一件事 - 就像之前回答中提到的某人一样 - 它可能会很烦人。谨慎使用。