AMP

amp-video

 
您現在可以使用此元件的 Bento 版本,在有效的 AMP 文件之外使用此元件。在 Bento 指南中了解更多資訊。

說明

取代 HTML5 video 標籤。

 

所需指令碼

<script async custom-element="amp-video" src="https://cdn.ampproject.org/v0/amp-video-0.1.js"></script>

用法

HTML5 video 標籤的替代品;僅用於直接嵌入 HTML5 影片檔案。

amp-video 元件會延遲載入由其 src 屬性指定的影片資源,載入時間由執行階段決定。您可以像控制標準 HTML5 <video> 標籤一樣控制 amp-video 元件。

amp-video 元件最多接受四種獨特的 HTML 節點作為子節點:

  • source 標籤:就像在 HTML <video> 標籤中一樣,您可以新增 <source> 子標籤來指定要播放的不同來源媒體檔案。
  • track 標籤可在影片中啟用字幕。如果字幕檔與文件位於不同的來源,您必須將 crossorigin 屬性新增至 <amp-video> 標籤。每當影片有旁白或重要的音訊資訊時,請務必為可能聽不到或關閉聲音的使用者提供字幕。
  • 影片開始前的預留位置
  • 如果瀏覽器不支援 HTML5 影片的備用方案:一或零個直接子節點可以具有 fallback 屬性。如果存在,此節點及其子節點將構成在使用者瀏覽器不支援 HTML5 影片時顯示的內容。

此瀏覽器不支援 video 元素。

<amp-video controls
  width="640"
  height="360"
  layout="responsive"
  poster="/static/inline-examples/images/kitten-playing.png">
  <source src="/static/inline-examples/videos/kitten-playing.webm"
    type="video/webm" />
  <source src="/static/inline-examples/videos/kitten-playing.mp4"
    type="video/mp4" />
  <div fallback>
    <p>This browser does not support the video element.</p>
  </div>
</amp-video>
在 playground 中開啟此程式碼片段

屬性

src

如果沒有 <source> 子節點,則為必要。必須是 HTTPS。

poster

在影片播放開始前顯示的影格圖片。預設情況下,會顯示第一格。

或者,您可以呈現點擊播放覆蓋層。

autoplay

故事中的影片為必要。

如果存在此屬性,且瀏覽器支援自動播放,則影片將在可見時立即自動播放。元件需要滿足一些條件才能播放,這些條件已在 AMP 中的 Video 規範中概述

controls

此屬性類似於 HTML5 video 中的 controls 屬性。如果存在此屬性,瀏覽器會提供控制項,讓使用者可以控制影片播放。

controlsList

與 HTML5 video 元素的 controlsList 屬性相同。僅受某些瀏覽器支援。

dock

需要 amp-video-docking 元件。如果存在此屬性且影片正在手動播放,則當使用者滾動超出影片元件的可視區域時,影片將被「最小化」並固定到角落或元素。

loop

如果存在,影片將在到達結尾時自動循環回到開頭。

crossorigin

如果 track 資源與文件位於不同的來源,則為必要。

disableremoteplayback

決定是否允許媒體元素具有遠端播放 UI,例如 Chromecast 或 AirPlay。

muted (已棄用)

muted 屬性已棄用,不再有任何作用。autoplay 屬性會自動控制靜音行為。

noaudio

將影片註解為沒有音訊。這會隱藏影片自動播放時顯示的等化器圖示。

在故事中,此屬性會有效地將影片靜音。

volume

設定影片的目前音量,值必須在 [0, 1] 範圍內。預設值為 1。

使用 volume 屬性時,如果故事中的其他影片沒有 crossorigin 屬性(如果來源是 CORS),則它們可能無法正確播放。

rotate-to-fullscreen

如果影片可見,則在使用者將裝置旋轉到橫向模式後,影片會全螢幕顯示。如需更多詳細資訊,請參閱 AMP 中的 Video 規範

通用屬性

此元素包含擴展到 AMP 元件的通用屬性

Media Session API 屬性

amp-video 元件實作了 Media Session API,讓開發人員可以指定更多關於影片檔案的資訊。影片的其他資訊會顯示在使用者裝置的通知中心(以及播放/暫停控制項)。

此範例包含 posterartwork 屬性。poster 作為影片播放前的預留位置圖片,而 artwork 是透過 MediaSession API 顯示在通知中的圖片。

<amp-video
  width="720"
  height="305"
  layout="responsive"
  src="https://yourhost.com/videos/myvideo.mp4"
  poster="https://yourhost.com/posters/poster.png"
  artwork="https://yourhost.com/artworks/artwork.png"
  title="Awesome video"
  artist="Awesome artist"
  album="Amazing album"
>
</amp-video>

artwork

指定作為影片 artwork 的 PNG/JPG/ICO 圖片的 URL。如果沒有 artwork,Media Session API 輔助程式會使用 schema.org 定義中的 image 欄位、og:image 或網站的 favicon

artist

指示影片檔案的作者,指定為字串。

album

指示影片取自的專輯/收藏,指定為字串。

title

指示影片的名稱/標題,指定為字串。如果未提供,Media Session API 輔助程式會使用 aria-label 屬性或退回使用頁面的標題。

cache

指示 Google 影片快取應透過新增 cache="google" 來儲存和提供影片。影片快取會定期擷取和儲存影片內容,降低影片的服務成本,並產生具有不同品質設定的轉碼,以適應網路狀況調整位元速率。

分析

amp-video 支援開箱即用的分析。請參閱影片分析以獲取更多資訊。

樣式

點擊播放覆蓋層

提供點擊播放覆蓋層是網頁上影片播放器的常見使用者體驗功能。例如,您可以顯示使用者可以點擊的自訂播放圖示,以及包含影片標題、不同大小的海報圖片等。由於 amp-video 元件支援標準的 play AMP 動作,您可以輕鬆實作點擊播放。

驗證

請參閱 AMP 驗證器規範中的 amp-video 規則

需要更多協助嗎?

您已經閱讀此文件十幾次,但它並沒有真正涵蓋您的所有問題?也許其他人也有同樣的感覺:在 Stack Overflow 上與他們聯繫。

前往 Stack Overflow
發現錯誤或缺少功能?

AMP 專案強烈鼓勵您的參與和貢獻!我們希望您成為我們開源社群的持續參與者,但我們也歡迎您對您特別感興趣的問題做出一次性貢獻。

前往 GitHub