预加载Javascript音频以在脚本中播放

Preload Javascript audio to play in script

本文关键字:脚本 播放 加载 Javascript 音频      更新时间:2023-09-26

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

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

在onclick HTML属性中。我有一张奇特的加载图片,我知道如何使其出现,并成功地使其工作。我想在加载音频时显示这张图片,然后在加载完音频文件并准备播放后将其删除。现在,点击元素和听到声音之间有相当大的延迟。

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

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

注意:我不能使用<audio>元素,除非有办法在<audio>中嵌套<div>,以便通过单击<div> 内容中的任何位置来触发<audio>中的声音

很抱歉我的描述有点混乱!

谢谢,Lucas N

您可以使用canplaythrough事件

当就绪状态变为CAN_PLAY_THROUGH时发送,表示假设下载速率至少保持在当前水平。

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;
}

通过更改其预加载属性

audio.prooad="自动";

它将在启动时加载整个音频文件