This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The MediaSession interface of the the Media Session API allows a web page to provide custom behaviors for standard media playback interactions.


Returns an instance of MediaMetadata which contains rich media metadata, for display in a platform UI.
Indicates whether the current media session is playing. Valid values are "none", "paused", or "playing".


Sets an event handler for a media session action, such as play or pause. See the method page for a full list.


The following example creates a new media session and assigns action handlers to it:

if ('mediaSession' in navigator){
  navigator.mediaSession.metadata = new MediaMetadata({
    title: "Podcast Episode Title",
    artist: "Podcast Host",
    album: "Podcast Name",
    artwork: [{src: "podcast.jpg"}]
  navigator.mediaSession.setActionHandler('play', function() {});
  navigator.mediaSession.setActionHandler('pause', function() {});
  navigator.mediaSession.setActionHandler('seekbackward', function() {});
  navigator.mediaSession.setActionHandler('seekforward', function() {});
  navigator.mediaSession.setActionHandler('previoustrack', function() {});
  navigator.mediaSession.setActionHandler('nexttrack', function() {});

The following example sets up event handlers for pausing and playing:

var audio = document.querySelector("#player");
audio.src = "song.mp3";

navigator.mediaSession.setActionHandler('play', play);
navigator.mediaSession.setActionHandler('pause', pause);

function play() {;
   navigator.mediaSession.playbackState = "playing";

function pause() {
   navigator.mediaSession.playbackState = "Paused";


Specification Status Comment
Media Session Standard
The definition of 'MediaSession' in that specification.
Editor's Draft Initial definition.

Browser Compatibility

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support No support ? ? No support ?
Feature Android Webview Chrome for Android Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile
Basic support No support 57 ? ? ? No support ?

Document Tags and Contributors

 Contributors to this page: gonchuki, bunnybooboo, jpmedley
 Last updated by: gonchuki,