我希望能够在某些事件发生时使用JavaScript在HTML页面上播放声音。
基本上我想使用AJAX从服务器获取数据,然后如果它是特定的,那么播放声音。 它在PC浏览器上运行良好,但我在使用Safari(iOS)和Chrome(Android)时遇到了问题。我读到要在Chrome上播放声音(我猜也是Safari),这需要由一些用户事件(手势,点击等)触发。所以这是我简化的代码:
<!DOCTYPE HTML>
<head>
<meta http-equiv="refresh" content="7" />
</head>
<body>
<button onclick="playSound()" id="button">Click me</button>
<script>
window.setInterval(function(){
parent.document.getElementById('button').click();
}, 5000);
function playSound() {
var audio = new Audio('http://www.soundjay.com/button/beep-01a.wav');
audio.play();
}
</script>
</body>
</html>
我认为这种解决方法可行(使用JS触发点击事件),但仍然没有声音。 另外一件事是我想要每隔几秒钟使用AJAX代码,甚至当手机被阻挡时。我找到了这个解决方案(并应用了我之前尝试的更改):
background.html:
<!DOCTYPE HTML>
<head>
<meta http-equiv="refresh" content="3" />
</head>
<body>
<script>
parent.run_function_from_core_page();
</script>
</body>
</html>
在index.html中:
<iframe src="background.html" style="display:none;"></iframe>
但同样,在PC上运行效果很好,但Chrome手机和Safari手机上都没有声音。 有什么建议?这甚至可能吗?