javascript - 单击播放音频时出现不必要的延迟

我有一个显示图片的网页。单击图片后,我希望它播放一些声音文件(图片中对象名称的录音)。我有这方面的工作代码,但在单击图像和听到正在播放的音频文件之间存在明显的延迟。我怎样才能改进我的代码以消除这种延迟?

HTML:

<div>
    <button style="background-image:url('objects/images/horlicks.JPG'); width:480; height:640" onclick="changeText('horlicks', 'Horlicks', 'objects/sounds/horlicks.mp3')">
    </button>
    <p id="horlicks"></p>
</div>

JavaScript:

function changeText(id, newText, audioFile) {
    document.getElementById(id).innerHTML = newText;  // This happens quickly
    new Audio(audioFile).play();  // This takes a long time
}

更新:

HTML/JavaScript 已更新为如下所示,播放音频文件时仍然存在延迟(尽管延迟仅在 iPad 上明显,在我的笔记本电脑上不明显):

<div>
    <button style="background-image:url('objects/images/horlicks.JPG'); width:480; height:640" onclick="changeText('horlicks', 'Horlicks', '32'); horlicks.play();">
    </button>
    <p id="horlicks"></p>
</div>

JavaScript:

var horlicks = new Audio('objects/sounds/horlicks.mp3');
function changeText(id, newText, size) {
    document.getElementById(id).innerHTML = '<font size="'+size+'">'+newText+"</font>";
}

最佳答案

为了以防万一它对某人有帮助,我只是尝试调试相同的问题并发现我的廉价蓝牙耳机导致延迟 - 我猜一定要用有线扬声器进行测试。

https://stackoverflow.com/questions/27753390/

相关文章:

django - 如何从 Django 中的信号获取返回响应

bash - 如何获取wget下载的文件的文件名

ruby-on-rails - 康康舞能力 : allow site admin with roli

java - Jersey : use @Inject in ResourceConfig

visual-studio-2013 - 即使通过 NuGet 安装,SpecFlow 也找不到包

inno-setup - 如何在 InnoSetup 中更改 {app} 变量

javascript - 如何更改 D3 中的缩放速度

ruby-on-rails - Mongoid 批量收集插入 : how to get the id

c# - 在linq中动态选择一个属性

python - pymssql : Inserting mutliple values into