【问题标题】:Preload Javascript audio to play in script预加载 Javascript 音频以在脚本中播放
【发布时间】:2016-05-04 00:29:17
【问题描述】:

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

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

在 onclick HTML 属性中。我有一张精美的加载图片,我知道如何让它出现并成功地让它工作。我想在音频加载时显示这张图片,然后在音频文件加载完成并准备好播放后让它消失。现在,点击元素和听到声音之间有相当长的延迟。

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

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

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

抱歉我的描述有点混乱!

谢谢, 卢卡斯 N

【问题讨论】:

    标签: javascript jquery html audio


    【解决方案1】:

    你可以使用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;
    }
    

    【讨论】:

    • 谢谢,这正是我所需要的。我的项目完美无缺。
    【解决方案2】:

    您将其预加载属性更改为

    。 audio.preload = "自动";

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-02
      • 1970-01-01
      • 2014-11-16
      • 1970-01-01
      • 2012-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多