原文地址:developers.google.com/web/updates…
在本文中,我將討論Chrome 73新媒體功能,其中包括
- 現在支援通過媒體按鍵來控制桌面上的媒體播放。
- Web開發人員可以查詢是否可以實施某個HDCP策略。
- 桌面PWA應用自動畫中畫,畫中畫中的“跳過廣告”正在試驗階段。
- 桌面PWA允許自動播放聲音
一、Media鍵盤按鍵支援
許多鍵盤如今已有按鍵可以控制基礎Media背景播放功能,例如播放/暫停,上一首/下一首。耳機也有它們。到目前為止,桌面使用者無法使用這些媒體鍵來控制Chrome中的音訊和視訊播放。而現在一切都變了!
如果使用者按下了暫停鍵,Chrome中播放的活動Media元素將暫停並接收“已暫停”的媒體事件。如果按下播放鍵,前一個被暫停的media元素將被再次恢復並接收一個‘play’媒體事件。無論Chrome應用是在前臺還是在後臺,它都有效。
在Chrome作業系統中,使用音訊焦點的Android應用現在會通知Chrome暫停和恢復音訊,以便在Chrome,Chrome應用和Android應用上的網站之間建立無縫的媒體體驗。
簡而言之,總是監聽這些媒體事件並採取相應行動是一種很好的做法。
video.addEventListener('pause', function() {
// Video is now paused.
// TODO: Let's update UI accordingly.
});
video.addEventListener('play', function() {
// Video is now playing.
// TODO: Let's update UI accordingly.
});
複製程式碼
不光上面,現在桌面上可以使用媒體會話API(以前只在移動裝置上支援),Web開發人員可以處理媒體相關事件,例如由媒體鍵觸發的曲目更改。目前支援事件previoustrack和nexttrack
navigator.mediaSession.setActionHandler('previoustrack', function() {
// User hit "Previous Track" key.
});
navigator.mediaSession.setActionHandler('nexttrack', function() {
// User hit "Next Track" key.
});
複製程式碼
Chrome會自動處理播放和暫停鍵。但是,如果預設行為不適合您,您可以為“播放”和“暫停”設定一些操作處理程式以防止這種情況發生。
navigator.mediaSession.setActionHandler('play', function() {
// User hit "Play" key.
});
navigator.mediaSession.setActionHandler('pause', function() {
// User hit "Pause" key.
});
複製程式碼
目前僅在Chrome OS,macOS和Windows上支援,Linux將在稍後推出。
使用媒體會話API設定一些媒體會話後設資料(如標題,藝術家,專輯名稱和插圖)可用,但尚未連線到桌面通知。它將在以後的支援平臺上出現。
檢視目前已有開發者文件並嘗試官方Media Session示例
二、加密媒體:HDCP政策檢查
由於HDCP策略檢查API,Web開發人員現在可以查詢特定策略,例如,在請求Widevine許可和載入媒體之前,可以強制執行HDCP要求。
const status = await video.mediaKeys.getStatusForPolicy({ minHdcpVersion: '2.2' });
if (status == 'usable')
console.log('HDCP 2.2 can be enforced.');
複製程式碼
API可在所有平臺上使用。但是,實際的策略檢查可能在某些平臺上不可用。例如,HDCP策略檢查承諾將拒絕Android和Android WebView上的NotSupportedError。
三、已安裝的PWA的自動畫中畫原點試驗
有些頁面可能希望自動進入和離開畫中畫的視訊元素;例如,當使用者在Web應用程式與其他應用tab之間來回切換時,視訊Web應用程式將受益於一些自動畫中畫行為。但很遺憾,使用者手勢目前是做不到的,所以這就是Auto Picture-in-Picture!
為了支援這些tab和app互相切換,video元素新增了一個新的autopictureinpicture屬性。
<video autopictureinpicture></video>
複製程式碼
以下是工作原理:
當document隱藏時,最近設定了autopictureinpicture屬性的video元素就會自動進入Picture-in-Picture(如果允許畫中畫的話)
當document可見時,畫中畫中的視訊元素會自動離開。
請注意,“自動畫中畫”功能僅適用於使用者在桌面上安裝的Progressive Web Apps(PWA)。
為了從Web開發人員那裡獲得反饋,自動畫中畫功能可作為適用於桌面(Chrome OS,Linux,Mac和Windows)的Chrome 73中的Origin Trial。您需要請求令牌,以便在有限的時間段內為您的源自動啟用該功能。這將消除啟用“Web平臺功能”標誌的需要。
四、在畫中畫視窗中跳過廣告的原始試驗
視訊廣告模型通常包括前貼片廣告。內容提供商通常會在幾秒鐘後跳過廣告。遺憾的是,由於畫中畫視窗不是互動式的,因此觀看畫中畫視訊的使用者今天無法做到這一點。
現在桌面上可以使用媒體會話API(之前僅在移動裝置上支援),可以使用新的跳過媒體會話操作在畫中畫中提供此選項。
畫中畫視窗跳過廣告按鈕
要提供此功能,請在呼叫setActionHandler()時使用skipad傳遞函式。隱藏它傳遞null。正如您可以在下面閱讀的那樣,它非常簡單.
try {
navigator.mediaSession.setActionHandler('skipad', null);
showSkipAdButton();
} catch(error) {
// The "Skip Ad" media session action is not supported.
}
function showSkipAdButton() {
// The Picture-in-Picture window will show a "Skip Ad" button.
navigator.mediaSession.setActionHandler('skipad', onSkipAdButtonClick);
}
function onSkipAdButtonClick() {
// User clicked "Skip Ad" button, let's hide it now.
navigator.mediaSession.setActionHandler('skipad', null);
// TODO: Stop ad and play video.
}
複製程式碼
媒體會話操作處理程式將保持不變。我建議在媒體播放開始和結束時始終重置它們以避免顯示意外的“跳過廣告”按鈕。
五、為PWA授予自動播放許可權
現在所有桌面平臺都可以使用Progressive Web Apps(PWA),我們正在將移動裝置上的規則擴充套件到桌面:現在允許已安裝的PWA使用聲音自動播放。請注意,它僅適用於Web應用程式清單範圍內的頁面。