jQuery:你怎么预加载声音?

Axi*_*ili 11 audio jquery preload

我有一个网站,当你点击一个按钮播放声音.

我就是这样做的

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

你如何事先预装声音文件?

谢谢.

Ger*_*son 15

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

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

  • 这是一个很好的解决方案,但不能在IE中工作,至少不能使用声音文件,因为IE无法正确处理二进制文件而且不会触发成功功能,请参阅此问题以获取更多信息:http://bugs.jquery.com/ticket/11426 - 就在今天发现它. (3认同)

Jus*_*ene 5

在 HTML5 中执行此操作,如下所示:

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

然后播放它:

my_sound[0].play();
Run Code Online (Sandbox Code Playgroud)