jQuery:你怎么预加载声音?

时间:2010-05-04 04:46:08

标签: jquery audio preload

我有一个网站,当您点击按钮时会播放声音。

我就是这样做的

function PlaySound(soundfile) {
    $('#soundContainer').html("<embed src='/uploads/sounds/" + soundfile + "' hidden=true autostart=true loop=false>");
}

如何预先预加载声音文件?

谢谢。

5 个答案:

答案 0 :(得分:14)

只是想到我的头脑,你可以为声音文件发出ajax请求,但是在文件100%加载之前不要显示按钮。

$(document).ready(function() {
    $.ajax({
        url: "soundfile.mp3",
        success: function() {
            $("#play_button").show();
        }
    });
});

答案 1 :(得分:2)

有很多更好的方法可以用JavaScript播放声音。对于我的最爱,请查看SoundManager。有了它,您只需拨打soundManager.load即可加载声音文件。

答案 2 :(得分:2)

在HTML5中执行此操作:

dim strWhere                        as string 
dim dtRequeestStartDate      as date 
dim dtRequestEndDate         as date 
dim lngCarID         as long

dtRequestStartDate = inputbox("Enter start Date") 
dtRequestEndDate = inputbox("Enter end date") 
lngCarID = inputbox("What car id")

strWhere="#" & format(dtRequestStartDate,"mm/­dd/yyyy") & "# <= EndDate" & _ 
 " and #" & format(dtRequestEndDate,"mm/dd­/yyyy") & "#  >= StartDate and CarID = " & lngCarID


if dcount("*","tableBooking",strW­here) > 0 then 
    msgbox "sorry, you cant book 
 ...bla bla bla.... 

然后播放:

my_sound = $("<audio>", {src:"filename.mp3",preload:"auto"}).appendTo("body");

答案 3 :(得分:0)

  1. 向它发出AJAX请求。如果您的服务器发出正确的缓存标头(例如 Expires ),它将存储在浏览器缓存中。

  2. 丑陋的方式:

  3. soundfile = new Image(); 
    soundfile.src = /uploads/sounds/" + soundfile;

答案 4 :(得分:0)

没有<embed>这样的东西。

您可以使用HTML5 <audio>元素而不使用autoplay,然后让它开始使用其play()方法。