amp-audio
描述
取代 HTML5 的 audio 標籤。
需要的指令碼 (Required Scripts)
<script async custom-element="amp-audio" src="https://cdn.ampproject.org/v0/amp-audio-1.0.js"></script>
<script async custom-element="amp-audio" src="https://cdn.ampproject.org/v0/amp-audio-1.0.js"></script> <link rel="stylesheet" href="https://cdn.ampproject.org/v0/amp-audio-1.0.css">
支援的版面配置
用法
使用 amp-audio
元件搭配直接嵌入的 HTML5 音訊檔案。
amp-audio
元件會根據 runtime 決定的時間載入由其 src
屬性指定的音訊資源。 它可以像標準 HTML5 audio
標籤一樣被控制。 就像 AMP 檔案中所有嵌入的外部資源一樣,音訊是「延遲」載入的,只有當 amp-audio
元素在可視區域內或附近時才會載入。
amp-audio
元件最多可接受三種獨特的 HTML 節點作為子節點:
source
標籤:就像在 HTML<audio>
標籤中一樣,您可以新增<source>
子標籤來指定要播放的不同來源媒體檔案。- 音訊開始前的佔位符:一個或零個直接子節點可以具有
placeholder
屬性。 如果存在,此節點及其子節點將形成一個佔位符,將顯示而不是音訊。 點擊或輕觸amp-audio
容器內的任何位置,將用音訊本身替換佔位符。 - 如果瀏覽器不支援 HTML5 音訊的備用方案:一個或零個直接子節點可以具有
fallback
屬性。 如果存在,此節點及其子節點將形成在用戶的瀏覽器不支援 HTML5 音訊時顯示的內容。
例如:
<amp-audio width="400" height="300" src="https://yourhost.com/audios/myaudio.mp3" > <div fallback> <p>Your browser doesn’t support HTML5 audio</p> </div> <source type="audio/mpeg" src="foo.mp3" /> <source type="audio/ogg" src="foo.ogg" /> </amp-audio>
屬性
src
如果沒有 <source>
子節點,則為必填。 必須是 HTTPS。
preload
如果存在,則在 html <audio>
標籤中設定 preload 屬性,該屬性指定作者是否認為應該在頁面載入時載入音訊檔案。
autoplay
如果存在,該屬性表示音訊將在準備就緒後立即開始播放。
loop
如果存在,音訊將在到達結尾時自動循環回到開頭。
muted
如果存在,則預設情況下將靜音音訊。
controlsList
與 HTML5 audio 元素的 controlsList 屬性相同。 僅受某些瀏覽器支援。 請參閱 https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/controlsList 了解詳細資訊。
媒體工作階段屬性 (Media Session Attributes)
amp-audio
實作 Media Session API,使開發人員能夠指定更多關於正在播放的音訊檔案的資訊,以便顯示在用戶設備的通知中心(以及播放/暫停控制)。
範例
<amp-audio width="400" height="300" src="https://yourhost.com/audios/myaudio.mp3" artwork="https://yourhost.com/artworks/artwork.png" title="Awesome music" artist="Awesome singer" album="Amazing album" > <source type="audio/mpeg" src="foo.mp3" /> </amp-audio>
artwork
作為音訊封面的 PNG/JPG/ICO 圖片的 URL。如果不存在,MediaSessionAPI 輔助程式將使用 schema.org
定義中的 image
欄位、og:image
或網站的 favicon
。
artist
(字串) 指示音訊的作者。
album
(字串) 指示音訊所屬的專輯。
title
(字串) 通用屬性 的一部分,同時也是音訊在 MediaSession 通知中顯示的名稱。 如果未提供,MediaSessionAPI 輔助程式將使用 aria-label
屬性或回退到頁面的標題。
分析
AMP 音訊分析收集有關用戶如何在 AMP 文件中與音訊互動的資料。 AMP 音訊擴充功能在其生命週期中發出分析事件。 這些事件可以通過使用 audio-*
觸發器的分析配置來報告。 目前支援 audio-play
和 audio-pause
這兩個分析事件。
有關 amp-analytics 配置的詳細資訊,請參閱 AMP Analytics 元件。
音訊播放觸發 ("on": "audio-play"
)
當音訊從用戶點擊播放或從自動播放開始或恢復時,會觸發 audio-play
觸發器。 使用這些配置來觸發此事件的請求。
"triggers": { "audioPlay": { "on": "audio-play", "request": "event", "selector": "#audio1" } }
音訊暫停觸發 ("on": "audio-pause"
)
當音訊從用戶點擊暫停、自動播放暫停或音訊到達結尾而停止播放時,會觸發 audio-pause
觸發器。 使用這些配置來觸發此事件的請求。
"triggers": { "audioPause": { "on": "audio-pause", "request": "event", "selector": "#audio1" } }
驗證
請參閱 AMP 驗證器規範中的 amp-audio 規則。
您已經閱讀了這份文件十幾次,但它並沒有真正涵蓋您的所有問題? 也許其他人也有同樣的感受:在 Stack Overflow 上與他們聯繫。
前往 Stack Overflow 發現錯誤或缺少功能?AMP 專案強烈鼓勵您的參與和貢獻! 我們希望您能成為我們開源社群的持續參與者,但我們也歡迎您針對您特別感興趣的問題做出一次性貢獻。
前往 GitHub