预加载jPlayer使用的音频文件

时间:2012-08-27 09:26:50

标签: javascript jquery jplayer

我正在使用(隐藏width: 0;)jPlayer间歇性地播放许多短声音文件。

我会在必要时使用.jPlayer("clearMedia").jPlayer("setMedia")来切换声音文件。

但是,这意味着该文件仅在播放时加载。这导致了显着的延迟。我确实知道,一旦文件被加载,它们就会被缓存,并会在稍后再次提示时立即播放。

有没有办法加载这些音频文件(每个都在ogg和m4a中提供)onload而不自动播放它们,并且以这种方式jPlayer以后可以使用该缓存?我有一个声音文件的完整JS数组列表。

1 个答案:

答案 0 :(得分:4)

您可以使用多个jPlayers。为每个声音文件创建一个div,然后为每个声音文件分配一个jPlayer。就像是: HTML:

<div id="sound1" class="audio" path="audiourl1"></div>
<div id="sound2" class="audio" path="audiourl2"></div>

和Javascript / Jquery

$(".audio").each(function(){
    var $this = $(this);
    var path = $this.attr("path");
    $this.jPlayer({
        ready: function () {
          $(this).jPlayer("setMedia", {
            m4a: "/mp3/"+path+".m4a", // Defines the m4a (AAC) url
            oga: "/ogg/"+path+".ogg" // Defines the counterpart oga url
          });
        },
        supplied: "m4a, oga",
        swfPath: "/jPlayer/js"
    });
});