预加载 Javascript 音频以在脚本中播放
Posted
技术标签:
【中文标题】预加载 Javascript 音频以在脚本中播放【英文标题】:Preload Javascript audio to play in script 【发布时间】:2016-05-04 00:29:17 【问题描述】:我有一个运行此脚本的简单程序:
function PlayAudio(Location)
var audio = new Audio(Location);
audio.Play()
在 onclick html 属性中。我有一张精美的加载图片,我知道如何让它出现并成功地让它工作。我想在音频加载时显示这张图片,然后在音频文件加载完成并准备好播放后让它消失。现在,点击元素和听到声音之间有相当长的延迟。
我的麻烦是知道音频何时完成加载并准备好播放。我认为了解何时完成加载的最佳方法是在脚本中预加载文件。我不知道该怎么做。
这是我的问题: 如何在脚本中预加载文件? 或者,有没有办法知道音频文件何时最终播放?
注意:我不能使用<audio>
元素,除非有某种方法可以在<audio>
内嵌套<div>
,以便通过单击@ 内容中的任意位置来触发<audio>
中的声音987654326@
抱歉我的描述有点混乱!
谢谢, 卢卡斯 N
【问题讨论】:
【参考方案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 = "自动";
它将在启动时加载整个音频文件
【讨论】:
以上是关于预加载 Javascript 音频以在脚本中播放的主要内容,如果未能解决你的问题,请参考以下文章