jQuery: Как вы предварительно загружаете звук? - PullRequest
10 голосов
/ 04 мая 2010

У меня есть веб-сайт, который воспроизводит звук при нажатии кнопки.

Вот как я это делаю

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

Как заранее загрузить звуковой файл?

Спасибо.

Ответы [ 5 ]

14 голосов
/ 04 мая 2010

просто подумав, можете ли вы сделать ajax-запрос для звукового файла, но не показывайте кнопку, пока файл не будет загружен на 100%.

$(document).ready(function() {
    $.ajax({
        url: "soundfile.mp3",
        success: function() {
            $("#play_button").show();
        }
    });
});
3 голосов
/ 02 сентября 2015

Сделайте это в HTML5 следующим образом:

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

Тогда играть в нее:

my_sound[0].play();
2 голосов
/ 04 мая 2010

Есть много лучших способов воспроизвести звук с помощью JavaScript. Для моего любимого, проверьте SoundManager . С его помощью вы можете просто позвонить soundManager.load, чтобы предварительно загрузить звуковой файл.

0 голосов
/ 04 мая 2010

Нет такой вещи как <embed>.

Вы можете использовать элемент HTML5 <audio> без autoplay, а затем заставить его начать играть по методу play().

0 голосов
/ 04 мая 2010
  1. Сделайте AJAX-запрос к нему. Если ваш сервер выдает правильные заголовки кэширования (например, Expires ), он будет сохранен в кэше браузера.

  2. Уродливый путь:

soundfile = new Image(); 
soundfile.src = /uploads/sounds/" + soundfile;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...