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 |
瀏覽器相容性
載入中…