目錄
了解媒體會話API
MediaMetadata接口
MediaSession界面
首頁 web前端 css教學 給用戶控制:媒體會話API

給用戶控制:媒體會話API

Mar 31, 2025 am 10:28 AM

給用戶控制:媒體會話API

想像一下:殺手肯德里克·拉馬爾(Kendrick Lamar)的曲目從您的許多瀏覽器選項卡中之一爆炸。您正在開槽,但有人進入,您需要暫停它。哪個標籤?瀏覽器提供有限的幫助;您可能會靜音所有音頻,但直接控制不會更好?

媒體會議API解決了這一點。它將媒體播放控件擴展到播放選項卡之外,從而通過以下方式提供訪問

  • 移動設備通知區域
  • 可穿戴設備
  • 桌面媒體樞紐

此外,它可以使用媒體鍵和語音助手(Siri,Google Assistant,Bixby,Alexa)進行控制。

了解媒體會話API

API以兩個接口為中心:

  • MediaMetadata :提供媒體詳細信息(標題,專輯,藝術品,藝術家 - 肯德里克·拉馬爾(Kendrick Lamar),在我們的示例中)。
  • MediaSession :管理播放功能。

在實施之前,請始終檢查瀏覽器支持:

如果(導航器中的'MediaSession'){
  //媒體會話API代碼在此處
}
登入後複製

MediaMetadata接口

MediaMetadata.MediaMetadata()創建一個MediaMetadata對象。關鍵屬性包括:

  • MediaMetadata.title :媒體標題。
  • MediaMetadata.artist :藝術家或團體。
  • MediaMetadata.album :專輯名稱。
  • MediaMetadata.artworkMediaImage對象的數組(圖像URL,大小,MIME類型)。

肯德里克·拉馬爾(Kendrick Lamar)的“好”的示例:

如果(導航器中的'MediaSession'){
  navigator.mediasession.metadata =新的MediaMetadata({
    標題:“好”,
    藝術家:'肯德里克·拉馬爾(Kendrick Lamar),
    專輯:“到皮條客蝴蝶”,
    藝術品: [
      {src:'https:// mytechnicalArticle/kendrick-lamar/to-pimp-a-butterfly/alright/alright/96x96',尺寸:'96x96',類型:'image/png'},
      {src:'https:// mytechnicalArticle/kendrick-lamar/to-pimp-a-butterfly/alright/alright/allight/128x128',尺寸:'128x128',類型:'image/png'},
      //添加更多尺寸(192x192,256x256等)
    這是給出的
  });
}
登入後複製

MediaSession界面

該界面提供用戶播放控件:

  • play() :開始播放。
  • pause() :暫停播放。
  • previoustrack() :播放上一首曲目。
  • nexttrack() :播放下一首曲目。
  • seekbackward() :向後尋求(通過指定的偏移)。
  • seekforward() :尋求向前。
  • seekto() :尋求特定時間。
  • stop() :停止播放。
  • skipad() :跳過廣告(此處省略了以簡短的實現詳細信息)。

setActionHandler()為這些動作註冊處理程序。播放/暫停的示例:

讓Alright = new Audio(); //使用音頻而不是htmlaudiolement

如果(導航器中的'MediaSession'){
  navigator.mediasession.setActionHandler('play',()=> alright.play());
  navigator.mediasession.setactionhandler('pape',()=> alright.pape());
}
登入後複製

previoustracknexttrackseekbackward ,Seekforward, seekforwardseekto和Stop和stop中實施了類似的處理程序。如果details.seekOffset seekbackward seekforward默認的10秒偏移。 seekto處理標準和快速尋求。 stop處理程序停止並重置播放時間。

請記住,在每個操作之後,使用setPositionState()更新播放狀態:

如果(導航器中的'MediaSession'){
  navigator.mediasession.setpositionstate({
    持續時間:好的。
    ploplackrate:Alright.playbackrate,
    位置:Alright.CurrentTime
  });
}
登入後複製

錯誤處理至關重要; Wrap setActionHandler try...catch塊優雅地處理不受支持的動作。

原始文章中提供了一個完整的示例,其中包含錯誤處理和狀態更新。切記用實際的URL替換佔位符圖像URL。該演示在各種設備和平台上展示了​​API的功能。考慮在您的媒體豐富的應用程序中實現此API,以增強用戶體驗。

以上是給用戶控制:媒體會話API的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1668
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24
靜態表單提供商的比較 靜態表單提供商的比較 Apr 16, 2025 am 11:20 AM

讓我們嘗試在這裡造成一個術語:“靜態表單提供商”。你帶上html

使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom 每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom Apr 17, 2025 am 10:55 AM

在本週的平台新聞綜述中,Chrome引入了一個用於加載的新屬性,Web開發人員的可訪問性規範以及BBC Move

帶有HTML對話框元素的一些動手 帶有HTML對話框元素的一些動手 Apr 16, 2025 am 11:33 AM

這是我第一次查看HTML元素。我已經意識到了一段時間,但是尚未將其旋轉。它很酷,

紙張形式 紙張形式 Apr 16, 2025 am 11:24 AM

購買或建造是技術的經典辯論。自己構建東西可能會感覺更便宜,因為您的信用卡賬單上沒有訂單項,但是

'訂閱播客”鏈接應在哪裡? '訂閱播客”鏈接應在哪裡? Apr 16, 2025 pm 12:04 PM

有一段時間,iTunes是播客中的大狗,因此,如果您將“訂閱播客”鏈接到喜歡:

它全部都在頭上:管理帶有React頭盔的React Power Site的文檔頭 它全部都在頭上:管理帶有React頭盔的React Power Site的文檔頭 Apr 15, 2025 am 11:01 AM

該文檔負責人可能不是網站上最迷人的部分,但是其中所處的內容對於您的網站的成功也一樣重要

See all articles