Media Capabilities API
Baseline 广泛可用 *
注意:此功能在 Web Workers 中可用。
媒体能力 API 允许开发者确定设备的解码和编码能力,公开媒体是否受支持以及播放是否应流畅且节能等信息,并提供有关播放的实时反馈,以更好地实现自适应流,并访问显示属性信息。
概念
视频和音频编码器种类繁多。不同的浏览器支持不同的媒体类型,并且新的媒体类型总是在开发中。借助媒体能力 API,开发者可以确保每位用户都能为其浏览器、设备和操作系统能力获得最佳的比特率和存储节省。
设备使用硬件解码还是软件解码会影响视频解码的流畅性和节能性,以及播放的效率。媒体能力 API 能够确定支持哪些编码器,以及媒体文件的流畅性和节能性。
媒体能力 API 提供了比 MediaRecorder.isTypeSupported() 或 HTMLMediaElement.canPlayType() 更强大的功能,这些功能仅解决一般的浏览器支持问题,而不涉及性能。该 API 还提供了访问显示属性信息的功能,例如支持的颜色 色域、动态范围能力以及播放的实时反馈。
要测试编码和解码视频或音频内容的支撑性、流畅性和能效,可以使用 MediaCapabilities 接口的 encodingInfo() 和 decodingInfo() 方法。
媒体能力信息使网站能够启用自适应流,以根据用户实际感知到的质量来改变内容的质量,并实时响应 CPU/GPU 使用率的峰值。
接口
MediaCapabilities-
根据编码器、配置、分辨率和比特率,提供有关设备、系统和浏览器解码能力的信息。这些信息可用于向用户提供最佳媒体流,并确定播放是否应流畅且节能。
其他接口的扩展
-
一个
MediaCapabilities对象,可以公开给定媒体格式和输出能力的解码和编码能力信息。 -
一个
MediaCapabilities对象,可以公开给定媒体格式和输出能力的解码和编码能力信息。
示例
检测音频文件支持和预期性能
此示例定义了一个音频配置,然后检查用户代理是否支持解码该媒体配置,以及它在流畅性和能效方面是否表现良好。
if ("mediaCapabilities" in navigator) {
const audioFileConfiguration = {
type: "file",
audio: {
contentType: "audio/mp3",
channels: 2,
bitrate: 132700,
samplerate: 5200,
},
};
navigator.mediaCapabilities
.decodingInfo(audioFileConfiguration)
.then((result) => {
console.log(
`This configuration is ${result.supported ? "" : "not "}supported,`,
);
console.log(`${result.smooth ? "" : "not "}smooth, and`);
console.log(`${result.powerEfficient ? "" : "not "}power efficient.`);
})
.catch(() => {
console.log(`decodingInfo error: ${contentType}`);
});
}
规范
| 规范 |
|---|
| Media Capabilities # media-capabilities-interface |
浏览器兼容性
加载中…