我正在构建一个专门通过Android设备上的Chrome浏览器访问的网站,因此它是我唯一关心我的代码运行的浏览器。
我希望能够在点击一个物体时播放声音。但到目前为止,响应速度很慢,只有每隔4或5秒钟点击一次,声音就会跟不上。我希望能够快速点击并保持声音。
通过javascript播放音频(wav文件)以使其在Android平板电脑上通过Chrome运行良好的最佳方法是什么?
我目前正在使用<audio>
标签,然后使用javascript来播放该文件。 (通过我的计算机上的Chrome浏览器,它工作正常,声音的速度还可以。但是在Android平板电脑上,声音很痛苦。这就好像声音没有因为某些原因而被预加载,或类似的东西,在平板电脑上。)
我当前的代码
位于我的<body>
标记下方:
<audio id="audiotag1" src="ding.wav" preload="auto"></audio>
当用户点按屏幕时
function registerTouch(mouse) {
play_multi_sound('audiotag1');
}
var channel_max = 3; // number of channels
audiochannels = new Array();
for (a=0;a<channel_max;a++) { // prepare the channels
audiochannels[a] = new Array();
audiochannels[a]['channel'] = new Audio(); // create a new audio object
audiochannels[a]['finished'] = -1; // expected end time for this channel
}
function play_multi_sound(s) {
for (a=0;a<audiochannels.length;a++) {
thistime = new Date();
if (audiochannels[a]['finished'] < thistime.getTime()) { // is this channel finished?
audiochannels[a]['finished'] = thistime.getTime() + document.getElementById(s).duration*1000;
audiochannels[a]['channel'].src = document.getElementById(s).src;
audiochannels[a]['channel'].load();
audiochannels[a]['channel'].play();
break;
}
}
}
答案 0 :(得分:0)
大多数移动浏览器都不会预加载音频/视频以节省带宽。
Safari 5.0及更高版本支持preload属性。 Safari上 iOS永远不会预加载。