The readyState read-only property of the MediaSource interface returns an enum representing the state of the current MediaSource. The three possible values are:
   
    closed: The source is not currently attached to a media element. 
    open: The source is attached to a media element and ready to receive SourceBuffer objects. 
    ended: The source is attached to a media element but the stream has been ended via a call to MediaSource.endOfStream(). 
   
   
  Value
  
  Examples
  
   The following snippet is from a simple example written by Nick Desaulniers (view the full demo live, or download the source for further investigation). The function getMediaSource(), which is not defined here, returns a MediaSource.
   
    
    let mediaSource;
if ("MediaSource" in window && MediaSource.isTypeSupported(mimeCodec)) {
  mediaSource = getMediaSource();
  console.log(mediaSource.readyState); 
  video.src = URL.createObjectURL(mediaSource);
  mediaSource.addEventListener("sourceopen", sourceOpen);
} else {
  console.error("Unsupported MIME type or codec: ", mimeCodec);
}
function sourceOpen() {
  console.log(this.readyState); 
  const sourceBuffer = mediaSource.addSourceBuffer(mimeCodec);
  fetchAB(assetURL, (buf) => {
    sourceBuffer.addEventListener("updateend", () => {
      mediaSource.endOfStream();
      video.play();
      console.log(mediaSource.readyState); 
    });
    sourceBuffer.appendBuffer(buf);
  });
}
    
   
  Specifications
  
  Browser compatibility
  
   
    
     
      
        | 
       Desktop | 
       Mobile | 
      
      
        | 
       Chrome | 
       Edge | 
       Firefox | 
       Internet Explorer | 
       Opera | 
       Safari | 
       WebView Android | 
       Chrome Android | 
       Firefox for Android | 
       Opera Android | 
       Safari on IOS | 
       Samsung Internet | 
      
     
     
      
       readyState | 
       23 | 
       12 | 
       42 | 
       
        11Only works on Windows 8+.
         | 
       15 | 
       8 | 
       4.4.3 | 
       33 | 
       41 | 
       14 | 
       
        13Exposed in Mobile Safari on iPad but not on iPhone.
         | 
       2.0 | 
      
     
    
    
   
  See also