【问题标题】:Playing audio through javascript and Android browser通过 javascript 和 Android 浏览器播放音频
【发布时间】:2019-03-24 22:02:59
【问题描述】:

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

【问题讨论】:

  • 你能发布你当前的代码吗?

标签: javascript android html audio


【解决方案1】:

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

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

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

【讨论】:

  • 他说他在 Android 中使用 Chrome,而不是在 iOS 中使用 Safari。
猜你喜欢
  • 2015-03-25
  • 2011-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-09
  • 2015-06-20
  • 1970-01-01
相关资源
最近更新 更多