我有一个带有 HTML5 元素的示例。我需要在 ajax 请求后动态创建音频元素并播放它。但是在手机上是不行的!安卓 4.1 和 IOS7。它在桌面上完美运行!
页面加载后它不起作用。但它在按下按钮后和按下按钮播放控制后起作用。为什么?
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script>
function play() {
var audio = document.createElement('audio');
audio.autoplay = true;
audio.controls = true;
audio.src='http://s3.amazonaws.com/audiojs/02-juicy-r.mp3';
document.body.appendChild(audio);
audio.play();
}
setTimeout(play, 1000);
</script>
</head>
<body>
<h1>test</h1>
<input type='button' value='Press Me' onclick='play()' />
</body>
</html>
最佳答案
我有同样的经历,在 AJAX 调用后无法播放音频。我想这与移动设备上的安全设置有关。移动浏览器的行为不同。尝试在移动设备上调用键盘时也会发生同样的情况。只有在按键或单击事件之后才有可能,但在页面加载或 Ajax 调用之后不会自动发生。
我使用的一种解决方案可能是在 Ajax 调用之外触发声音,以防一开始就触发了 Ajax 调用。
关于javascript - HTML5 音频元素在移动设备上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20000788/