MediaSource

Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

L'interface MediaSource de l'API Media Source Extensions représente une source de données multimédia pour un objet HTMLMediaElement. Un objet MediaSource peut être attaché à un HTMLMediaElement pour être lu dans l'agent utilisateur.

Constructeur

MediaSource()
Construit et renvoie un nouvel objet MediaSource sans tampon source associé.

Propriétés

MediaSource.sourceBuffers Lecture seule
Renvoie un objet SourceBufferList contenant la liste des objets SourceBuffer associés à ce MediaSource.
MediaSource.activeSourceBuffers Lecture seule
Renvoie un objet SourceBufferList contenant un sous-ensemble des objets SourceBuffer contenus dans MediaSource.sourceBuffers — la liste des objets fournissant la piste vidéo sélectionnée, pistes audio activées et pistes de texte affichées / masquées.
MediaSource.readyState Lecture seule
Renvoie une énumération représentant l'état de la MediaSource actuelle, qu'elle ne soit pas actuellement attachée à un élément multimédia (fermé), attachée et prête à recevoir des objets SourceBuffer (ouvert), ou attachée mais le flux a été terminé via MediaSource.endOfStream() (terminé).
MediaSource.duration
Obtient et définit la durée du média actuel présenté.

Gestionnaires d'événements

MediaSource.onsourceclose
Le gestionnaire d'événements pour l'événement sourceclose.
MediaSource.onsourceended
Le gestionnaire d'événements pour l'événement sourceended.
MediaSource.onsourceopen
Le gestionnaire d'événements pour l'événement sourceopen.

Méthodes

Hérite des méthodes de son interface parente, EventTarget.

MediaSource.addSourceBuffer()
Crée un nouveau SourceBuffer du type MIME donné et l'ajoute à la liste MediaSource.sourceBuffers.
MediaSource.clearLiveSeekableRange()
Efface un ensemble privé de plage de recherche avec un appel à setLiveSeekableRange().
MediaSource.endOfStream()
Signale la fin du flux.
MediaSource.removeSourceBuffer()
Supprime le SourceBuffer donné de la liste MediaSource.sourceBuffers.
MediaSource.setLiveSeekableRange()
Définit la plage que l'utilisateur peut rechercher dans l'élément multimédia.

Méthodes statiques

MediaSource.isTypeSupported()
Renvoie une valeur Boolean indiquant si le type MIME donné est pris en charge par l'agent utilisateur actuel - c'est-à-dire s'il parvient à créer des objets SourceBuffer pour ce type MIME .

Exemples

L'exemple simple suivant charge une vidéo avec XMLHttpRequest et la lit dès que possible. Cet exemple a été écrit par Nick Desaulniers et peut être consulté en direct ici (vous pouvez aussi télécharger la source pour une enquête plus approfondie).

var video = document.querySelector('video');

var assetURL = 'frag_bunny.mp4';
// Need to be specific for Blink regarding codecs
// ./mp4info frag_bunny.mp4 | grep Codec
var mimeCodec = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';

if ('MediaSource' in window && MediaSource.isTypeSupported(mimeCodec)) {
  var mediaSource = new MediaSource();
  //console.log(mediaSource.readyState); // closed
  video.src = URL.createObjectURL(mediaSource);
  mediaSource.addEventListener('sourceopen', sourceOpen);
} else {
  console.error('Unsupported MIME type or codec: ', mimeCodec);
}

function sourceOpen (_) {
  //console.log(this.readyState); // open
  var mediaSource = this;
  var sourceBuffer = mediaSource.addSourceBuffer(mimeCodec);
  fetchAB(assetURL, function (buf) {
    sourceBuffer.addEventListener('updateend', function (_) {
      mediaSource.endOfStream();
      video.play();
      //console.log(mediaSource.readyState); // ended
    });
    sourceBuffer.appendBuffer(buf);
  });
};

function fetchAB (url, cb) {
  console.log(url);
  var xhr = new XMLHttpRequest;
  xhr.open('get', url);
  xhr.responseType = 'arraybuffer';
  xhr.onload = function () {
    cb(xhr.response);
  };
  xhr.send();
};

Spécifications

Spécification Statut Commentaire
Media Source Extensions
La définition de 'MediaSource' dans cette spécification.
Recommendation Définition initiale.

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung Internet
MediaSource
Expérimentale
Chrome Support complet 31
Support complet 31
Aucun support 23 — 31
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : WebKit
Edge Support complet 12Firefox Support complet 42
Support complet 42
Aucun support 25 — 42
Notes Désactivée
Notes Limited support to an allowed list of sites, for example YouTube, Netflix, and other popular streaming sites. The limitation was removed when Media Source Extensions was enabled by default in Firefox 42.
Désactivée From version 25 until version 42 (exclusive): this feature is behind the media.mediasource.enabled preference. To change preferences in Firefox, visit about:config.
IE Support complet 11Opera Support complet 18
Support complet 18
Aucun support 15 — 18
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : WebKit
Safari Support complet 8WebView Android Support complet 4.4.3Chrome Android Support complet 31
Support complet 31
Aucun support 25 — 31
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : WebKit
Firefox Android Support complet 41Opera Android Support complet 18
Support complet 18
Aucun support 14 — 18
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : WebKit
Safari iOS Support complet 8Samsung Internet Android Support complet 2.0
Support complet 2.0
Aucun support 1.5 — 2.0
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : WebKit
MediaSource() constructor
Expérimentale
Chrome Support complet 31
Support complet 31
Aucun support 23 — 31
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : WebKit
Edge Support complet 12Firefox Support complet 42
Support complet 42
Aucun support 25 — 42
Notes Désactivée
Notes Limited support to an allowed list of sites, for example YouTube, Netflix, and other popular streaming sites. The limitation was removed when Media Source Extensions was enabled by default in Firefox 42.
Désactivée From version 25 until version 42 (exclusive): this feature is behind the media.mediasource.enabled preference. To change preferences in Firefox, visit about:config.
IE Support complet 11
Notes
Support complet 11
Notes
Notes Only works on Windows 8+.
Opera Support complet 15Safari Support complet 8WebView Android Support complet 4.4.3Chrome Android Support complet 33Firefox Android Support complet 41Opera Android Support complet 14Safari iOS Aucun support NonSamsung Internet Android Support complet 2.0
activeSourceBuffers
Expérimentale
Chrome Support complet 23Edge Support complet 12Firefox Support complet 42
Support complet 42
Aucun support 25 — 42
Notes Désactivée
Notes Limited support to an allowed list of sites, for example YouTube, Netflix, and other popular streaming sites. The limitation was removed when Media Source Extensions was enabled by default in Firefox 42.
Désactivée From version 25 until version 42 (exclusive): this feature is behind the media.mediasource.enabled preference. To change preferences in Firefox, visit about:config.
IE Support complet 11
Notes
Support complet 11
Notes
Notes Only works on Windows 8+.
Opera Support complet 15Safari Support complet 8WebView Android Support complet 4.4.3Chrome Android Support complet 25Firefox Android Support complet 41Opera Android Support complet 14Safari iOS Aucun support NonSamsung Internet Android Support complet 1.5
addSourceBuffer
Expérimentale
Chrome Support complet 23Edge Support complet 12Firefox Support complet 42
Support complet 42
Aucun support 25 — 42
Notes Désactivée
Notes Limited support to an allowed list of sites, for example YouTube, Netflix, and other popular streaming sites. The limitation was removed when Media Source Extensions was enabled by default in Firefox 42.
Désactivée From version 25 until version 42 (exclusive): this feature is behind the media.mediasource.enabled preference. To change preferences in Firefox, visit about:config.
IE Support complet 11
Notes
Support complet 11
Notes
Notes Only works on Windows 8+.
Opera Support complet 15Safari Support complet 8WebView Android Support complet 4.4.3Chrome Android Support complet 25Firefox Android Support complet 41Opera Android Support complet 14Safari iOS Aucun support NonSamsung Internet Android Support complet 1.5
clearLiveSeekableRange
Expérimentale
Chrome Support complet 62Edge Support complet 17Firefox Aucun support NonIE Aucun support NonOpera Support complet 49Safari Aucun support NonWebView Android Support complet 62Chrome Android Support complet 62Firefox Android ? Opera Android Support complet 46Safari iOS Aucun support NonSamsung Internet Android Support complet 8.0
duration
Expérimentale
Chrome Support complet 23Edge Support complet 12Firefox Support complet 42
Support complet 42
Aucun support 25 — 42
Notes Désactivée
Notes Limited support to an allowed list of sites, for example YouTube, Netflix, and other popular streaming sites. The limitation was removed when Media Source Extensions was enabled by default in Firefox 42.
Désactivée From version 25 until version 42 (exclusive): this feature is behind the media.mediasource.enabled preference. To change preferences in Firefox, visit about:config.
IE Support complet 11
Notes
Support complet 11
Notes
Notes Only works on Windows 8+.
Opera Support complet 15Safari Support complet 8WebView Android Support complet 4.4.3Chrome Android Support complet 25Firefox Android Support complet 41Opera Android Support complet 14Safari iOS Aucun support NonSamsung Internet Android Support complet 1.5
endOfStream
Expérimentale
Chrome Support complet 23Edge Support complet 12Firefox Support complet 42
Support complet 42
Aucun support 25 — 42
Notes Désactivée
Notes Limited support to an allowed list of sites, for example YouTube, Netflix, and other popular streaming sites. The limitation was removed when Media Source Extensions was enabled by default in Firefox 42.
Désactivée From version 25 until version 42 (exclusive): this feature is behind the media.mediasource.enabled preference. To change preferences in Firefox, visit about:config.
IE Support complet 11
Notes
Support complet 11
Notes
Notes Only works on Windows 8+.
Opera Support complet 15Safari Support complet 8WebView Android Support complet 4.4.3Chrome Android Support complet 25Firefox Android Support complet 41Opera Android Support complet 14Safari iOS Aucun support NonSamsung Internet Android Support complet 1.5
isTypeSupported
Expérimentale
Chrome Support complet 23Edge Support complet 12Firefox Support complet 42
Support complet 42
Aucun support 25 — 42
Notes Désactivée
Notes Limited support to an allowed list of sites, for example YouTube, Netflix, and other popular streaming sites. The limitation was removed when Media Source Extensions was enabled by default in Firefox 42.
Désactivée From version 25 until version 42 (exclusive): this feature is behind the media.mediasource.enabled preference. To change preferences in Firefox, visit about:config.
IE Support complet 11
Notes
Support complet 11
Notes
Notes Only works on Windows 8+.
Opera Support complet 15Safari Support complet 8WebView Android Support complet 4.4.3Chrome Android Support complet 25Firefox Android Support complet 41Opera Android Support complet 14Safari iOS Aucun support NonSamsung Internet Android Support complet 1.5
onsourceclose
Expérimentale
Chrome Support complet 53Edge Support complet 17Firefox Support complet 42
Support complet 42
Aucun support 25 — 42
Notes Désactivée
Notes Limited support to an allowed list of sites, for example YouTube, Netflix, and other popular streaming sites. The limitation was removed when Media Source Extensions was enabled by default in Firefox 42.
Désactivée From version 25 until version 42 (exclusive): this feature is behind the media.mediasource.enabled preference. To change preferences in Firefox, visit about:config.
IE Support complet 11
Notes
Support complet 11
Notes
Notes Only works on Windows 8+.
Opera Support complet 15Safari Support complet 8WebView Android Support complet 4.4.3Chrome Android Support complet 33Firefox Android Support complet 41Opera Android Support complet 14Safari iOS Aucun support NonSamsung Internet Android Support complet 2.0
onsourceended
Expérimentale
Chrome Support complet 53Edge Support complet 17Firefox Support complet 42
Support complet 42
Aucun support 25 — 42
Notes Désactivée
Notes Limited support to an allowed list of sites, for example YouTube, Netflix, and other popular streaming sites. The limitation was removed when Media Source Extensions was enabled by default in Firefox 42.
Désactivée From version 25 until version 42 (exclusive): this feature is behind the media.mediasource.enabled preference. To change preferences in Firefox, visit about:config.
IE Support complet 11
Notes
Support complet 11
Notes
Notes Only works on Windows 8+.
Opera Support complet 15Safari Support complet 8WebView Android Support complet 4.4.3Chrome Android Support complet 33Firefox Android Support complet 41Opera Android Support complet 14Safari iOS Aucun support NonSamsung Internet Android Support complet 2.0
onsourceopen
Expérimentale
Chrome Support complet 53Edge Support complet 17Firefox Support complet 42
Support complet 42
Aucun support 25 — 42
Notes Désactivée
Notes Limited support to an allowed list of sites, for example YouTube, Netflix, and other popular streaming sites. The limitation was removed when Media Source Extensions was enabled by default in Firefox 42.
Désactivée From version 25 until version 42 (exclusive): this feature is behind the media.mediasource.enabled preference. To change preferences in Firefox, visit about:config.
IE Support complet 11
Notes
Support complet 11
Notes
Notes Only works on Windows 8+.
Opera Support complet 15Safari Support complet 8WebView Android Support complet 4.4.3Chrome Android Support complet 33Firefox Android Support complet 41Opera Android Support complet 14Safari iOS Aucun support NonSamsung Internet Android Support complet 2.0
readyState
Expérimentale
Chrome Support complet 23Edge Support complet 12Firefox Support complet 42
Support complet 42
Aucun support 25 — 42
Notes Désactivée
Notes Limited support to an allowed list of sites, for example YouTube, Netflix, and other popular streaming sites. The limitation was removed when Media Source Extensions was enabled by default in Firefox 42.
Désactivée From version 25 until version 42 (exclusive): this feature is behind the media.mediasource.enabled preference. To change preferences in Firefox, visit about:config.
IE Support complet 11
Notes
Support complet 11
Notes
Notes Only works on Windows 8+.
Opera Support complet 15Safari Support complet 8WebView Android Support complet 4.4.3Chrome Android Support complet 33Firefox Android Support complet 41Opera Android Support complet 14Safari iOS Aucun support NonSamsung Internet Android Support complet 2.0
removeSourceBuffer
Expérimentale
Chrome Support complet 23Edge Support complet 12Firefox Support complet 42
Support complet 42
Aucun support 25 — 42
Notes Désactivée
Notes Limited support to an allowed list of sites, for example YouTube, Netflix, and other popular streaming sites. The limitation was removed when Media Source Extensions was enabled by default in Firefox 42.
Désactivée From version 25 until version 42 (exclusive): this feature is behind the media.mediasource.enabled preference. To change preferences in Firefox, visit about:config.
IE Support complet 11
Notes
Support complet 11
Notes
Notes Only works on Windows 8+.
Opera Support complet 15Safari Support complet 8WebView Android Support complet 4.4.3Chrome Android Support complet 25Firefox Android Support complet 41Opera Android Support complet 14Safari iOS Aucun support NonSamsung Internet Android Support complet 1.5
setLiveSeekableRange
Expérimentale
Chrome Support complet 62Edge Support complet 17Firefox Aucun support NonIE Aucun support NonOpera Support complet 49Safari Aucun support NonWebView Android Support complet 62Chrome Android Support complet 62Firefox Android ? Opera Android Support complet 46Safari iOS Aucun support NonSamsung Internet Android Support complet 8.0
sourceBuffers
Expérimentale
Chrome Support complet 23Edge Support complet 12Firefox Support complet 42
Support complet 42
Aucun support 25 — 42
Notes Désactivée
Notes Limited support to an allowed list of sites, for example YouTube, Netflix, and other popular streaming sites. The limitation was removed when Media Source Extensions was enabled by default in Firefox 42.
Désactivée From version 25 until version 42 (exclusive): this feature is behind the media.mediasource.enabled preference. To change preferences in Firefox, visit about:config.
IE Support complet 11
Notes
Support complet 11
Notes
Notes Only works on Windows 8+.
Opera Support complet 15Safari Support complet 8WebView Android Support complet 4.4.3Chrome Android Support complet 25Firefox Android Support complet 41Opera Android Support complet 14Safari iOS Aucun support NonSamsung Internet Android Support complet 1.5

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Compatibilité inconnue  
Compatibilité inconnue
Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
Voir les notes d'implémentation.
Voir les notes d'implémentation.
Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.
Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.
Cette fonctionnalité nécessite un préfixe particulier ou utilise un autre nom.
Cette fonctionnalité nécessite un préfixe particulier ou utilise un autre nom.

Voir aussi