我在HTML页面中使用了声音并编写了一个JavaScript函数,以便在特定时间播放它。问题是,当我在PC中加载页面时,它运行良好,但在移动设备上,声音无法播放。有什么问题?
<audio id="buzzer" controls="controls">
<source src="assets/sound/buzzer.mp3" type="audio/mpeg" />
function PlaySound1() {
var audioElement = document.getElementById('buzzer');
audioElement.setAttribute("preload", "auto");
audioElement.autobuffer = true;
var source1 = document.createElement('source');
source1.type= 'audio/mpeg';
source1.src= 'buzzer.mp3';
audioElement.appendChild(source1);
audioElement.load();
audioElement.play();
};
答案 0 :(得分:1)
大多数移动浏览器需要直接的物理交互来开始音频播放。这意味着您无法在页面加载或任何异步函数(如setTimeout
)中触发初始播放。
答案 1 :(得分:0)
您可以试用UbaPlayer,它为旧浏览器提供Flash备用。
支持表(来自HTML5 Doctor: HTML5 Audio – The State of Play)
Mobile Browser Version Codec Support
Opera Mobile 11.0+ Device-dependent
Android 2.3+ Device-dependent
Mobile Safari (iPhone, iPad, iPod Touch) iOS 3.0+ MP3, AAC
Blackberry 6.0+ MP3, AAC
答案 2 :(得分:0)
您是否查看了浏览器支持表http://www.w3schools.com/html/html5_audio.asp
答案 3 :(得分:0)