| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // https://w3c.github.io/mediasession/#enumdef-mediasessionplaybackstate |
| |
| enum MediaSessionPlaybackState { |
| "none", |
| "paused", |
| "playing" |
| }; |
| |
| // https://w3c.github.io/mediasession/#the-mediasession-interface |
| |
| enum MediaSessionAction { |
| "play", |
| "pause", |
| "previoustrack", |
| "nexttrack", |
| "seekbackward", |
| "seekforward", |
| "skipad", |
| "stop", |
| "seekto" |
| }; |
| |
| callback MediaSessionActionHandler = void (MediaSessionActionDetails details); |
| |
| [ |
| Exposed=Window, |
| RuntimeEnabled=MediaSession |
| ] interface MediaSession { |
| [Measure] attribute MediaMetadata? metadata; |
| [Measure] attribute MediaSessionPlaybackState playbackState; |
| |
| [Measure, RaisesException] void setActionHandler(MediaSessionAction action, |
| MediaSessionActionHandler? handler); |
| |
| [Measure, RaisesException, RuntimeEnabled=MediaSessionPosition] |
| void setPositionState(optional MediaPositionState state = {}); |
| }; |