Подтвердить что ты не робот

Переключить источник звука с помощью jquery и тега HTML5

Я нашел только одно другое решение, но оно было неполным, поэтому мне нужна помощь здесь.

У меня есть настройка звука:

<audio id="player" controls="controls">
          <source id="ogg_src" src="lib/audio/barger01.ogg" type="audio/ogg" />
          <source id="mp3_src" src="lib/audio/barger01.mp3" type="audio/mp3" />
          Your browser does not support the audio element.
    </audio>

У меня есть динамически созданная таблица ссылок для изменения дорожки:

<div id="audio_list">
   <a href="#" class="track" data-location="http://www.newoggtrack.ogg">sample</a>
</div>

У меня есть этот jquery, что я не знаю, что делать, чтобы изменить дорожку

$('.track').click(function(){

    load_track = $(this).attr('data-location');//gets me the url of the new track

    change_track(load_track);// function to change the track of the loaded audio player without page refresh preferred...

});

Я нашел эту функцию, но я не использую ее правильно.

 function change_track(sourceUrl) {

        audio.empty();
        $("#ogg_src").attr("src", sourceUrl).appendTo(audio);
        /****************/
        audio[0].pause();
        audio[0].load();//suspends and restores all audio element
        /****************/
    }

audio = $("<audio>").attr("id", "player")
                        .attr("preload", "auto");
4b9b3361

Ответ 1

Ваша функция изменения должна выглядеть примерно так:

function change(sourceUrl) {
    var audio = $("#player");      
    $("#ogg_src").attr("src", sourceUrl);
    /****************/
    audio[0].pause();
    audio[0].load();//suspends and restores all audio element

    //audio[0].play(); changed based on Sprachprofi comment below
    audio[0].oncanplaythrough = audio[0].play();
    /****************/
}

Проблемы были audio.empty() и аудио var. Вы пытались добавить освобожденный звуковой тег и не записывали аудиотег обратно в браузер.

Ответ 2

Вы также можете переименовать функцию, так как "change" уже является функцией юниверса jQuery.