MediaSession - 允许网页为标准媒体回放交互提供自定义行为
这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
MediaSession
是 Media Session API 的接口,允许网页为标准媒体回放交互提供自定义行为。
属性
MediaSession.metadata
返回包含富媒体元数据的 MediaMetadata
实例,以便在平台 UI 中显示。
MediaSession.playbackState
指示当前媒体会话是否正在播放。有效值为 "none"
, "paused"
或 "playing"
。
方法
MediaSession.setActionHandler()
为媒体会话操作设置事件处理程序,例如播放或暂停。有关完整列表,请参阅方法页面。
实例
以下实例创建一个新的媒体会话并为其分配操作处理程序:
if ('mediaSession' in navigator){
navigator.mediaSession.metadata = new MediaMetadata({
title: "播客剧集标题",
artist: "播客主持人",
album: "播客名称",
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() {});
}
以下示例设置暂停和播放的事件处理程序:
var audio = document.querySelector("#player");
audio.src = "song.mp3";
navigator.mediaSession.setActionHandler('play', play);
navigator.mediaSession.setActionHandler('pause', pause);
function play() {
audio.play();
navigator.mediaSession.playbackState = "playing";
}
function pause() {
audio.pause();
navigator.mediaSession.playbackState = "paused";
}
规范
规范 | 状态 | 备注 |
---|---|---|
Media Session Standard MediaSession 的定义 |
草稿 | 初始定义。 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 73 | ≤79 | 71 | 未知 | 不支持 | 未知 |
metadata | 73 | ≤79 | 71 | 未知 | 不支持 | 未知 |
playbackState | 73 | ≤79 | 不支持 | 未知 | 不支持 | 未知 |
setActionHandler() | 73 | ≤79 | 71 | 未知 | 不支持 | 未知 |
setPositionState() | 73 | ≤79 | 不支持 | 未知 | 不支持 | 未知 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 不支持 | 57 | 未知 | 不支持 | 未知 | 不支持 | 未知 |
metadata | 不支持 | 57 | 未知 | 不支持 | 未知 | 不支持 | 未知 |
playbackState | 不支持 | 57 | 未知 | 不支持 | 未知 | 不支持 | 未知 |
setActionHandler() | 不支持 | 57 | 未知 | 不支持 | 未知 | 不支持 | 未知 |
setPositionState() | 不支持 | 57 | 未知 | 不支持 | 未知 | 不支持 | 未知 |