De nombreux exemples illustrent plusieurs balises source imbriquées dans la balise audio, en tant que méthode pour surmonter la compatibilité des codecs entre différents navigateurs. Quelque chose comme ça -Comment puis-je ajouter plusieurs sources à une balise audio HTML5, par programmation?
<audio controls="controls">
<source src="song.ogg" type="audio/ogg" />
<source src="song.mp3" type="audio/mpeg" />
Your browser does not support the audio element.
</audio>
Alors avec JavaScript, je suis aussi autorisé à créer un élément audio comme celui-ci -
var new_audio = document.createElement("audio");
Là où je peux définir sa source par la propriété .src
-new_audio.src="....";
Je n'ai pas réussi à trouver comment ajouter plusieurs sources dans un élément audio via JavaScript, quelque chose de similaire aux balises source affichées dans l'extrait HTML. Est-ce que je manipule le new_audio
et y ajoute les balises <source...
à l'intérieur, comme on manipulerait n'importe quel autre élément DOM? Je fais cela maintenant et il fonctionne, ce qui est -
new_audio.innerHTML = "<source src='audio/song.ogg' type='audio/ogg' />";
new_audio.play();
Je me demande s'il y a un moyen plus approprié de le faire?
Je laisse l'utilisateur pousser une liste de formats alternatifs à l'intérieur de l'attribut de classe lui-même, rendant un plugin simple à utiliser pour les aider à créer des survols audio. Donc, je ne serais pas au courant des types fournis par les utilisateurs finaux. Merci pour le conseil de canPlayType, serait utile. –
Juste quelque chose que j'ai remarqué - vous ne voulez probablement pas utiliser le mot-clé var dans votre conditionnel. Vous créez une nouvelle variable new_audio et ne référencez pas la variable existante. –
@AndyWest Ouais, il manquait aussi un support - assez mauvais code tout le tour :) – robertc