MediaSource

Cette traduction est incomplète. Aidez-nous à traduire cet article depuis l’anglais

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.

The MediaSource interface of the Media Source Extensions API represents a source of media data for an HTMLMediaElement object. A MediaSource object can be attached to a HTMLMediaElement to be played in the user agent.

Constructor

MediaSource()
Constructs and returns a new MediaSource object with no associated source buffers.

Properties

MediaSource.sourceBuffers Lecture seule
Returns a SourceBufferList object containing the list of SourceBuffer objects associated with this MediaSource.
MediaSource.activeSourceBuffers Lecture seule
Returns a SourceBufferList object containing a subset of the SourceBuffer objects contained within MediaSource.sourceBuffers — the list of objects providing the selected video track,  enabled audio tracks, and shown/hidden text tracks.
MediaSource.readyState Lecture seule
Returns an enum representing the state of the current MediaSource, whether it is not currently attached to a media element (closed), attached and ready to receive SourceBuffer objects (open), or attached but the stream has been ended via MediaSource.endOfStream() (ended.)
MediaSource.duration
Gets and sets the duration of the current media being presented.

Event handlers

MediaSource.onsourceclose
The event handler for the sourceclose event.
MediaSource.onsourceended
The event handler for the sourceended event.
MediaSource.onsourceopen
The event handler for the sourceopen event.

Methods

Inherits methods from its parent interface, EventTarget.

MediaSource.addSourceBuffer()
Creates a new SourceBuffer of the given MIME type and adds it to the MediaSource.sourceBuffers list.
MediaSource.clearLiveSeekableRange()
Clears a seekable range privious set with a call to setLiveSeekableRange().
MediaSource.endOfStream()
Signals the end of the stream.
MediaSource.removeSourceBuffer()
Removes the given SourceBuffer from the MediaSource.sourceBuffers list.
MediaSource.setLiveSeekableRange()
Sets the range that the user can seek to in the media element.

Static methods

MediaSource.isTypeSupported()
Returns a Boolean value indicating if the given MIME type is supported by the current user agent — this is, if it can successfully create SourceBuffer objects for that MIME type.

Examples

The following simple example loads a video with XMLHttpRequest, playing it as soon as it can. This example was written by Nick Desaulniers and can be viewed live here (you can also download the source for further investigation.)

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();
};

Specifications

Specification Status Comment
Media Source Extensions
La définition de 'MediaSource' dans cette spécification.
Recommendation Initial definition.

Browser compatibility

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 a whitelist of sites, for example YouTube, Netflix, and other popular streaming sites. The whitelist 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 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 Aucun support NonSamsung 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 a whitelist of sites, for example YouTube, Netflix, and other popular streaming sites. The whitelist 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 a whitelist of sites, for example YouTube, Netflix, and other popular streaming sites. The whitelist 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 a whitelist of sites, for example YouTube, Netflix, and other popular streaming sites. The whitelist 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 a whitelist of sites, for example YouTube, Netflix, and other popular streaming sites. The whitelist 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 a whitelist of sites, for example YouTube, Netflix, and other popular streaming sites. The whitelist 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 a whitelist of sites, for example YouTube, Netflix, and other popular streaming sites. The whitelist 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 a whitelist of sites, for example YouTube, Netflix, and other popular streaming sites. The whitelist 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 a whitelist of sites, for example YouTube, Netflix, and other popular streaming sites. The whitelist 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 a whitelist of sites, for example YouTube, Netflix, and other popular streaming sites. The whitelist 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 a whitelist of sites, for example YouTube, Netflix, and other popular streaming sites. The whitelist 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 a whitelist of sites, for example YouTube, Netflix, and other popular streaming sites. The whitelist 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 a whitelist of sites, for example YouTube, Netflix, and other popular streaming sites. The whitelist 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.

See also