Je n'ai trouvé qu'une autre solution mais elle était incomplète, j'ai donc besoin d'aide ici.
j'ai la configuration audio:
<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>
J'ai une table de liens générée dynamiquement pour changer la piste:
<div id="audio_list">
<a href="#" class="track" data-location="http://www.newoggtrack.ogg">sample</a>
</div>
j'ai ce jquery que je n'ai aucune idée de quoi faire avec pour changer la piste
$('.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...
});
j'ai trouvé cette fonction mais je ne l'utilise pas correctement
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");
Votre fonction de changement devrait être comme ceci:
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's comment below
audio[0].oncanplaythrough = audio[0].play();
/****************/
}
Les problèmes étaient audio.empty () et la var audio. Vous tentiez d'ajouter une balise audio vide et vous n'avez pas réécrit la balise audio dans le navigateur.
Vous pouvez également vouloir renommer la fonction car "changer" est déjà une fonction dans l'univers jQuery.