Media Session Standard
Python Shell Makefile
Clone or download
Latest commit 005fd89 Aug 17, 2017
Failed to load latest commit information.
images Add explainer for MediaSession API (moved out AudioFocus API) (#133) Sep 12, 2016
.gitignore Setup automatic master -> gh-pages deploy Jul 8, 2016
Makefile Use local bikeshed if installed on the system. (#154) Dec 15, 2016 Cleaning up (#134) Sep 12, 2016 Fix, rename files and remove html one. Jul 8, 2016
deploy_key.enc clearify playbackState and added examples (closes #175, closes #177) (#… Feb 14, 2017 Teach to reflow lines that are not in a <p>... or similar May 6, 2015 Add Security and Privacy Considerations section and questionnaire (cl… Jan 6, 2017 Cleaning up (#134) Sep 12, 2016

Media Session Standard

This standardization project aims to add support for media keys and audio focus to the Web. Media keys, like play, pause, fast forward and rewind, are found on keyboards, headsets, remote controls, and on lock screens of mobile devices.


The explainer of the MediaSession API can be found here.

Use cases

The use cases of the MediaSession API can be found here.


Our goal is to provide developers with low-level primitives that both help explain the platform, while also allowing developers to build rich multimedia experiences that leverage media key events. Keeping to our commitment to the extensible web manifesto, we want to allow the media key events to be routed to wherever you need them in your web application. At the same time, we want to make sure that whatever solution we come up with is easy to use – by possibly extending existing HTML elements or APIs.


Access to media keys and lock screen UI will only be granted when audio playback begins, ensuring that audio focus is not taken from another application prematurely and that lock screen UI is only shown when it can be used. This matches the iOS model.


This spec is built using Bikeshed.

Update and send a Pull Request with your changes. When your Pull Request will be merged, a new index.html will be generated. If you want to test locally, you can run make to generate index.html using Bikeshed's web interface. However, you should not send the index.html file in your Pull Request.

To run Bikeshed locally, install Bikeshed and then run bikeshed spec in the working directory.

Everyone is welcome to contribute! However, you need join WICG first and sign the W3C Community Contributor License Agreement.

Code of conduct

We are committed to providing a friendly, safe and welcoming environment for all. Please read and respect the W3C Code of Conduct.