预加载Javascript音频以在脚本

时间:2016-05-04 00:29:17

标签: javascript jquery html5 audio

我有一个简单的程序,我运行这个脚本:

function PlayAudio(Location){
var audio = new Audio(Location);
audio.Play()
}

在onclick HTML属性中。我有一个花哨的装载图片,我知道如何制作出现并成功实现了它。我希望在加载音频时显示此图片,然后在音频文件加载完毕并准备播放后将其删除。现在,点击元素和听到声音之间存在相当大的延迟。

我的麻烦是知道音频何时完成加载并准备播放。我认为最好的方法是知道何时完成加载是在脚本中预加载文件。我不知道该怎么做。

这就是我的问题: 如何在脚本中预加载文件? 或者,有没有办法知道音频文件何时最终播放?

注意:我无法使用<audio>元素,除非有某种方法可以在<div>内嵌套<audio>,以便<audio>中的声音由<div>触发点击r1

内容中的任意位置

对于我稍微有点混乱的描述感到抱歉!

谢谢, 卢卡斯N

2 个答案:

答案 0 :(得分:0)

您可以使用canplaythrough事件

  

当就绪状态更改为function PlayAudio (Location){ var audio = new Audio; audio.oncanplaythrough = function(event) { // do stuff, e.g.; set loading `img` `style` `display` to `none` this.play(); } audio.src = Location; } 时发送,表示该状态   假设,整个媒体可以不间断地播放   下载率至少保持在当前水平。

read()

答案 1 :(得分:0)

您可以通过

更改其预载attr

。 audio.preload =“auto”;

它会在开始时加载整个音频文件