HTMLMediaElement
================

L'interface **`HTMLMediaElement`** ajoute à `HTMLElement` les propriétés et les méthodes nécessaires pour prendre en charge les fonctionnalités de base liées aux médias qui sont communes aux vidéos et aux documents audios. `HTMLVideoElement` et `HTMLAudioElement` (en-US) héritent de cette interface.

Propriétés
----------

*Cette interface hérite aussi des propriétés de ses ancêtres* *`HTMLElement`, `Element`, `Node` et `EventTarget`.*

`HTMLMediaElement.audioTracks`

est une `AudioTrackList` (en-US) qui liste les objets `AudioTrack` (en-US) (*pistes audio*) contenus dans l'élément.

`HTMLMediaElement.autoplay` (en-US)

est un `Boolean` qui reflète l'attribut HTML `autoplay`, indiquant si la lecture doit commencer automatiquement dès que suffisamment de médias sont disponibles pour le faire sans interruption.

**Note :** Les sites qui lisent automatiquement l'audio (ou les vidéos avec une piste audio) peuvent être désagréables pour les utilisateurs, il faut donc l'éviter autant que possible. Si vous devez offrir la fonctionnalité de lecture automatique, vous devez la faire activer (par un utilisateur qui la lance expréssement). Cependant, cela peut être utile lors de la création d'éléments média dont la source sera définie ultérieurement, sous le contrôle de l'utilisateur.

`HTMLMediaElement.buffered`Lecture seule 

Renvoie un objet `TimeRanges` qui indique les plages de la source du média que le navigateur a en mémoire tampon (le cas échéant) au moment de l'accès à la propriété `buffered`.

`HTMLMediaElement.controller` (en-US)

est un objet `MediaController` qui représente le contrôleur du média assigné à l'élément, ou `null` si aucun n'est défini.

`HTMLMediaElement.controls`

est un `Boolean` qui reflète l'attribut HTML `controls`, indiquant quels éléments de contrôle de ressource de l'interface utilisateur doivent être affichés.

`HTMLMediaElement.controlsList` Lecture seule 

renvoie une `DOMTokenList` qui aide l'agent utilisateur à sélectionner les contrôles à afficher sur l'élément du média chaque fois que l'agent utilisateur affiche son propre jeu de contrôles. La `DOMTokenList` prend une ou plusieurs des trois valeurs possibles : `nodownload`, `nofullscreen` et `noremoteplayback`.

`HTMLMediaElement.crossOrigin`

est une `DOMString` (*chaîne de caractères*) indiquant les règlages CORS pour cet élément de média.

`HTMLMediaElement.currentSrc`Lecture seule 

Renvoie une `DOMString` (*chaîne de caractères*) avec l'URL absolue de la ressource de média choisie.

`HTMLMediaElement.currentTime` (en-US)

est un `double` indiquant le temps de lecture actuel en secondes. La définition de cette valeur recherche le média à la nouvelle heure.

`HTMLMediaElement.defaultMuted` (en-US)

est un `Boolean` qui reflète l'attribut HTML `muted`, qui indique si la sortie audio de l'élément média doit être désactivée par défaut.

`HTMLMediaElement.defaultPlaybackRate` (en-US)

est un `double` indiquant le taux de lecture par défaut pour le média.

`HTMLMediaElement.disableRemotePlayback` (en-US)

est un `Boolean` qui définit ou retourne l'état de lecture à distance, indiquant si l'élément de média est autorisé à avoir une interface de lecture à distance.

`HTMLMediaElement.duration` (en-US)Lecture seule 

renvoie un `double` indiquant la longueur du média en secondes, ou 0 si aucune donnée multimédia n'est disponible.

`HTMLMediaElement.ended` (en-US)Lecture seule 

renvoie un `Boolean` qui indique si l'élément média est terminé.

`HTMLMediaElement.error` (en-US)Lecture seule 

renvoie un objet `MediaError` (en-US) pour l'erreur la plus récente, ou `null` s'il n'y a pas eu d'erreur.

`HTMLMediaElement.loop`

est un `Boolean` qui reflète l'attribut HTML `loop` (*boucle*), lequel indique si l'élément média doit recommencer quand il arrive à la fin.

`HTMLMediaElement.mediaGroup` (en-US)

est une `DOMString` qui reflète l'attribut HTML `mediagroup`, lequel indique le nom du groupe d'éléments auquel il appartient. Un groupe d'éléments média partage un `MediaController` commun.

`HTMLMediaElement.mediaKeys` (en-US)Lecture seule  
Expérimental

Renvoie un objet `MediaKeys` (en-US) ou `null`. `MediaKeys` est un ensemble de clés qu'un élément `HTMLMediaElement` associé peut utiliser pour déchiffrer les données du média pendant la lecture.

`HTMLMediaElement.mozAudioCaptured`Lecture seule  
Non-standard

renvoie un `Boolean`. Lié à la capture de flux audio.

`HTMLMediaElement.mozFragmentEnd` 
Non-standard

est un `double` qui donne accès à l'heure de fin du fragment si l'élément média a un fragment URI pour `currentSrc`, sinon il est égal à la durée du média.

`HTMLMediaElement.mozFrameBufferLength` 
Non-standard

Obsolète

est un `unsigned long` qui indique le nombre d'échantillons qui seront renvoyés dans le "framebuffer" de chaque évènement `MozAudioAvailable`. Ce nombre est un total pour tous les canaux, et par défaut est défini par le nombre de canaux \* 1024 (c'est-à-dire, 2 canaux \* 1024 échantillons = total 2048).

La propriété `mozFrameBufferLength` peut être définie à une nouvelle valeur pour une latence plus faible, de plus grandes quantités de données, etc. La taille donnée *doit* être un nombre compris entre 512 et 16384. L'utilisation d'autres tailles entraîne la levée d'une exception. Le meilleur moment pour définir une nouvelle longueur est après le lancement de l'évènement loadedmetadata (en-US), lorsque l'information audio est connue, mais avant que l'audio ait commencé ou que les événements `MozAudioAvailable` aient commencé à se déclencher.

`HTMLMediaElement.mozSampleRate`Lecture seule  
Non-standard

Obsolète

renvoie un `double` représentant le nombre d'échantillons par seconde. Par exemple, 44100 échantillons par seconde correspondent à la fréquence d'échantillonnage utilisée par les CD audio.

`HTMLMediaElement.muted` (en-US)

est un `Boolean` qui détermine si l'audio est coupé. `true` (*vrai*) si l'audio est coupé et `false` (*faux*) sinon.

`HTMLMediaElement.networkState` (en-US)Lecture seule 

renvoie un `unsigned short` (énumération) indiquant l'état actuel de récupération du média sur le réseau.

`HTMLMediaElement.paused` (en-US)Lecture seule 

renvoie un `Boolean` qui indique si l'élément média est en pause.

`HTMLMediaElement.playbackRate` (en-US)

est un `double` qui indique la vitesse à laquelle le média est lu.

`HTMLMediaElement.played`Lecture seule 

renvoie un objet `TimeRanges` qui contient les plages de la source média que le navigateur a lu, le cas échéant.

`HTMLMediaElement.preload`

est une `DOMString` (*chaîne*) qui reflète l'attribut HTML `preload`, indiquant quelles données doivent être préchargées, le cas échéant. Les valeurs possibles sont : `none`, `metadata`, `auto`.

`HTMLMediaElement.preservesPitch` (en-US) 
Non-standard

est un `Boolean` qui détermine si la hauteur du son sera préservée. S'il est défini à `false` (*faux*), la hauteur du son s'ajustera à la vitesse de l'audio. C'est implémenté avec préfixe dans Firefox (`mozPreservesPitch`) et WebKit (`webkitPreservesPitch`).

`HTMLMediaElement.readyState` (en-US)Lecture seule 

Renvoie un `unsigned short` (énumération) indiquant l'état de préparation des médias.

`HTMLMediaElement.seekable` (en-US)Lecture seule 

Renvoie un objet `TimeRanges` qui contient les plages de temps que l'utilisateur peut rechercher, le cas échéant.

`HTMLMediaElement.seeking`Lecture seule 

Renvoie un `Boolean` qui indique si les médias sont en train de chercher une nouvelle position.

`HTMLMediaElement.sinkId` (en-US)Lecture seule  
Expérimental

Renvoie une `DOMString` (*chaîne*) qui est l'identifiant unique du périphérique audio de sortie, ou une chaîne vide s'il utilise l'agent utilisateur par défaut. Cet identifiant doit être l'une des valeurs `MediaDeviceInfo.deviceid` retournées par `MediaDevices.enumeratedDevices()`, `id-multimedia` ou `id-communications`.

`HTMLMediaElement.src` (en-US)

est une `DOMString` qui reflète l'attribut HTML `src`, lequel contient l'URL d'une ressource média à utiliser.

`HTMLMediaElement.srcObject` (en-US)

est un `MediaStream` représentant le média à lire ou qui a joué dans le `HTMLMediaElement` courant, ou `null` s'il n'est pas assigné.

`HTMLMediaElement.textTracks` (en-US)Lecture seule 

Renvoie la liste d'objets `TextTrack` (en-US) (*piste de texte*) contenus dans l'élément.

`HTMLMediaElement.videoTracks` (en-US)Lecture seule 

Renvoie la liste d'objets `VideoTrack` (*pistes vidéo*) contenus dans l'élément.

**Note :** Gecko ne prend en charge que la lecture d'une seule piste et l'analyse des métadonnées des pistes n'est disponible que pour les médias avec le format de conteneur Ogg.

`HTMLMediaElement.volume`

est un `double` indiquant le volume audio, de 0.0 (silence) à 1.0 (le plus fort).

### Gestionnaires d'évènements

`HTMLMediaElement.onencrypted` (en-US)

définit le `EventHandler` (en-US) (*gestionnaire d'évènements*) appelé quand le média est encrypté.

`HTMLMediaElement.onwaitingforkey` (en-US)

définit le `EventHandler` (en-US) (*gestionnaire d'évènements*) appelé quand la lecture est bloquée en attente d'une clé de chiffrement.

Attributs obsolètes
-------------------

Ces attributs sont obsolètes et ne doivent plus être utilisés, même si un navigateur les prend encore en charge.

`HTMLMediaElement.initialTime` Lecture seule  
Non-standard

Obsolète

renvoie un `double` qui indique la position de lecture initiale en secondes.

`HTMLMediaElement.mozChannels` Lecture seule  
Non-standard

Obsolète

renvoie un `double` représentant le nombre de canaux dans la ressource audio (c'est-à-dire 2 pour stéréo).

### Gestionnaires d'évènements obsolètes

`HTMLMediaElement.onmozinterruptbegin` 
Non-standard

Obsolète

définit le gestionnaire d'évènement appelé lorsque l'élément média est interrompu du fait du gestionnaire de canaux audio. C'était une spécificité de Firefox, implémentée pour Firefox OS et supprimée à partir de Firefox 55.

`HTMLMediaElement.onmozinterruptend` 
Non-standard

Obsolète

définit le gestionnaire d'évènement appelé lorsque l'interruption est terminée. C'était une spécificité de Firefox, implémentée pour Firefox OS et supprimée à partir de Firefox 55.

Méthodes
--------

*Cette interface hérite aussi des méthodes de ses ancêtres `HTMLElement`, `Element`, `Node` et `EventTarget`.*

`HTMLMediaElement.addTextTrack()`

Ajoute une piste de texte (telle qu'une piste pour les sous-titres) à un élément de média.

`HTMLMediaElement.captureStream()` 
Expérimental

Renvoie `MediaStream`, capture un flux du contenu du média.

`HTMLMediaElement.canPlayType()` (en-US)

Détermine si le type de média spécifié peut être lu.

`HTMLMediaElement.fastSeek()` (en-US)

cherche directement à l'heure donnée.

`HTMLMediaElement.load()` (en-US)

Réinitialise l'élément média et redémarre la ressource. Tous les événements en attente sont ignorés. La quantité de données média récupérées est toujours affectée par l'attribut `preload`. Cette méthode peut être utile pour libérer des ressources après la suppression de tout attribut `src` et des descendants d'éléments `source`. Sinon, il est généralement inutile d'utiliser cette méthode, à moins que cela ne soit nécessaire pour réanalyser les enfants de l'élément `source` après des modifications dynamiques.

`HTMLMediaElement.mozCaptureStream()` 
Non-standard

[enter description]

`HTMLMediaElement.mozCaptureStreamUntilEnded()` 
Non-standard

[enter description]

`HTMLMediaElement.mozGetMetadata()` 
Non-standard

Renvoie un `Object`, qui contient des propriétés représentant les métadonnées de la ressource média en cours de lecture, comme paires `{key: value}`. Une copie distincte des données est renvoyée chaque fois que la méthode est appelée. Cette méthode doit être appelée après le déclenchement de l'évènement loadedmetadata (en-US).

`HTMLMediaElement.pause()` (en-US)

met en pause la lecture du média.

`HTMLMediaElement.play()`

commence la lecture du média.

`HTMLMediaElement.seekToNextFrame()` (en-US) 
Non-standard

Expérimental

cherche l'image suivante dans les médias. Cette méthode expérimentale non standard permet de conduire manuellement la lecture et le rendu des médias à une vitesse personnalisée, ou de se déplacer dans le média image par image pour effectuer un filtrage ou d'autres opérations.

`HTMLMediaElement.setMediaKeys()` (en-US) 
Expérimental

Renvoie `Promise`. Définit les `MediaKeys` (en-US), clés à utiliser quand le média doit être décrypté pendant la lecture.

`HTMLMediaElement.setSinkId()` (en-US) 
Expérimental

définit l'identifiant du périphérique audio à utiliser en sortie et renvoie un `Promise`. Cela fonctionne uniquement quand l'application est autorisée à utiliser l'appareil spécifié.

Méthodes obsolètes
------------------

Ces méthodes sont obsolètes et ne doivent plus être utilisées, même si un navigateur les prend encore en charge.

`HTMLMediaElement.mozLoadFrom()` 
Non-standard

Obsolète

Cette méthode, disponible seulement pour les implémentations Mozilla, charge les données d'un autre élément de média. Ce fonctionnement est similaire à `load()` excepté qu'à la place d'exécuter l'algorithme normal de sélection de la ressource, la source est simplement définie sur `currentSrc` de l'autre élément. Ceci est optimisé pour que cet élément accède à toutes les données mises en cache et en mémoire tampon de l'autre élément ; en fait, les deux éléments partagent les données téléchargées, de sorte que les données téléchargées par l'un ou l'autre élément sont disponibles pour les deux.

Spécifications
--------------

| Specification |
| --- |
| HTML Standard # htmlmediaelement |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* References
    + Les éléments HTML `<video>` et `<audio>`.
    + Les interfaces `HTMLVideoElement` et `HTMLAudioElement` (en-US), dérivées de `HTMLMediaElement`.
* Articles
    + Contenu audio et video
    + Formats pris en charge par `audio` et `video`
    + Web Audio API