1

我正在构建一个专门用于通过 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;
        }
    }
}
4

1 回答 1

0

大多数移动浏览器不会预加载音频/视频以节省带宽。

Safari 5.0 及更高版本支持 preload 属性。iOS 上的 Safari 从不预加载。

https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/AudioandVideoTagBasics/AudioandVideoTagBasics.html#//apple_ref/doc/uid/TP40009523-CH2-SW9

于 2013-08-31T03:12:39.007 回答