| // Copyright 2015 The Chromium Authors |
| // 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", |
| "togglemicrophone", |
| "togglecamera", |
| "hangup", |
| "previousslide", |
| "nextslide", |
| "enterpictureinpicture" |
| }; |
| |
| 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] |
| void setPositionState(optional MediaPositionState state = {}); |
| |
| [Measure] |
| void setMicrophoneActive(boolean active); |
| |
| [Measure] |
| void setCameraActive(boolean active); |
| }; |