Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

HTMLAudioElement : constructeur Audio()

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis ⁨juillet 2015⁩.

Le constructeur Audio() crée et retourne un nouvel objet HTMLAudioElement qui peut être soit attaché à un document pour que l'utilisateur·ice puisse interagir avec et/ou écouter, soit utilisé hors écran pour gérer et lire de l'audio.

Syntaxe

js
new Audio()
new Audio(url)

Paramètres

url Facultatif

Une chaîne de caractères optionnelle contenant l'URL d'un fichier audio à associer au nouvel élément audio.

Valeur de retour

Un nouvel objet HTMLAudioElement, configuré pour lire l'audio du fichier spécifié par url. La propriété preload du nouvel objet est définie à auto et sa propriété src est définie à l'URL spécifiée ou à null si aucune URL n'est fournie. Si une URL est spécifiée, le navigateur commence à charger la ressource média asynchrone avant de retourner le nouvel objet.

Notes d'utilisation

Vous pouvez également utiliser d'autres méthodes de création d'éléments, comme la méthode createElement() de l'objet document, pour construire un nouvel objet HTMLAudioElement.

Déterminer quand la lecture peut commencer

Il existe trois façons de savoir quand suffisamment de données audio ont été chargées pour permettre la lecture :

  • Vérifier la valeur de la propriété readyState. Si elle vaut HTMLMediaElement.HAVE_FUTURE_DATA, il y a suffisamment de données pour commencer la lecture et lire au moins un court instant. Si elle vaut HTMLMediaElement.HAVE_ENOUGH_DATA, il y a assez de données pour que, compte tenu du débit actuel, la lecture puisse se faire jusqu'à la fin sans interruption.
  • Écouter l'événement canplay. Il est envoyé à l'élément <audio> lorsqu'il y a assez d'audio pour commencer la lecture, même si des interruptions peuvent survenir.
  • Écouter l'événement canplaythrough. Il est envoyé lorsqu'il est estimé que l'audio pourra être lu jusqu'à la fin sans interruption.

L'approche basée sur les événements est la meilleure :

js
myAudioElement.addEventListener("canplaythrough", (event) => {
  /* l'audio est maintenant lisible ; le lire si les permissions le permettent */
  myAudioElement.play();
});

Utilisation et gestion de la mémoire

Si toutes les références à un élément audio créé avec le constructeur Audio() sont supprimées, l'élément ne sera pas retiré de la mémoire par le mécanisme de ramasse-miettes de JavaScript si une lecture est en cours. L'audio continuera à jouer et l'objet restera en mémoire jusqu'à la fin de la lecture. À ce moment-là, l'objet pourra être collecté par le ramasse-miettes.

Spécifications

Specification
HTML
# dom-audio-dev

Compatibilité des navigateurs

Voir aussi