Ma page contient cette étiquette <video>
avec plusieurs sous-titres <track>
s. Je voudrais permettre à la volée la piste en cliquant sur le drapeau national correspondant en utilisant jquery:Comment changer la piste par défaut d'un élément vidéo html5?
<div id="lang">
<img src="mini/ita.png" class="it" alt="Italiano" title="Italiano" />
<img src="mini/eng.png" class="en" alt="English" title="English" />
</div>
<video controls="controls" >
<source src="webcast.webm" />
<source src="webcast.mp4" />
<source src="webcast.ogv" />
<track kind="subtitles" src="./sub-en.vtt" srclang="en" />
<track kind="subtitles" src="./sub-it.vtt" srclang="it" />
</video>
<script>
$('#lang img').click(function(){
language=$(this).attr('class');
$('video track').removeAttr('default');
$('video track[srclang='+language+']').attr('default','default');
});
</script>
L'attribut « par défaut » est insérée correctement, mais aucun sous-titre est displaied. L'insertion manuelle de l'attribut par défaut fonctionne parfaitement (sur chrome et opéra).
Au moment où vous définissez l'indicateur par défaut de js, un navigateur a probablement déjà choisi par défaut. Vous pouvez essayer de définir la propriété textTrack.mode sur "show" sur la piste souhaitée. –