2

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

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

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

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

4

1 回答 1

4

您可以使用多个 jPlayer。为每个声音文件创建一个 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"
    });
});
于 2012-10-24T16:33:53.593 回答