Переключить источник звука с помощью 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");
Ответы
Ответ 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.