Google AMP - Vídeo

Amp-video in amp é um vídeo html5 padrão usado para reproduzir embutidos de vídeo direto. Neste capítulo, vamos entender como trabalhar e usar amp-video.

Para trabalhar com amp-video, precisamos adicionar o seguinte script -

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

Amp-video tem o atributo src que tem o recurso de vídeo a ser carregado, que é carregado vagarosamente pelo amp em tempo de execução. Além disso, todos os recursos são quase os mesmos da tag de vídeo html5.

A seguir estão os nós que devem ser adicionados ao vídeo amp -

  • Source - Você pode adicionar diferentes arquivos de mídia para serem reproduzidos usando esta tag.

  • Track - Esta tag permite habilitar as legendas do vídeo.

  • Placeholder - Esta tag de espaço reservado mostrará o conteúdo antes do início do vídeo.

  • Fallback - Esta tag será chamada quando o navegador não for compatível com vídeo HTML5.

Formato da tag amp-video

O formato da tag amp-video é mostrado aqui -

<amp-video controls width = "640" height = "360" 
   layout = "responsive" poster = "images/videoposter.png">
   <source src = "video/bunny.webm" type = "video/webm" />
   <source src = "video/samplevideo.mp4" type = "video/mp4" />
   
   <div fallback>
      <p>This browser does not support the video element.</p>
   </div>
</amp-video>

Vamos entender o amp-video usando um exemplo prático como mostrado abaixo -

Exemplo

<!doctype html>
<html amp lang = "en">
   <head>
      <meta charset = "utf-8">
      <script async src = "https://cdn.ampproject.org/v0.js"></script>
      <title>Google AMP - Amp Video</title>
      <link rel = "canonical" href =  "http://example.ampproject.org/article-metadata.html">
      <meta name = "viewport" content = "width = device-width, minimum-scale = 1,initial-scale=1">

      <style amp-boilerplate>
         body {
            -webkit-animation:
            -amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:
            -amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:
            -amp-start 8s steps(1,end) 0s 1 normal both;animation:
            -amp-start 8s steps(1,end) 0s 1 normal both}
         @-webkit-keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}
      </style>
      <noscript>
         <style amp-boilerplate>
            body {
               -webkit-animation:none;
               -moz-animation:none;
               -ms-animation:none;
               animation:none
            }
         </style>
      </noscript>

      <script async custom-element = "amp-video" 
         src = "https://cdn.ampproject.org/v0/amp-video-0.1.js">
      </script>
   </head>
   <body>
      <h3>Google AMP - Amp Video</h3>
      <amp-video controls
         width = "640"
         height = "360"
         layout = "responsive"
         poster = "images/videoposter.png">
         <source src = "video/bunny.webm" type = "video/webm" />
         <source src = "video/samplevideo.mp4" type = "video/mp4" />
         
         <div fallback>
            <p>This browser does not support the video element.</p>
         </div>
      </amp-video>
   </body>
</html>

Resultado

A saída do código fornecido acima é mostrada abaixo -

Atributos disponíveis para amp-video

Os atributos disponíveis para amp-video estão listados na tabela aqui -

Sr. Não Atributos e descrição
1

src

Se o nó <source> não estiver presente, src deve ser especificado e deve ser https: // url.

2

poster

O pôster leva uma url img que é exibida antes do vídeo começar.

3

autoplay

Ter este atributo no amp-video reproduz automaticamente o vídeo se o navegador for compatível. O vídeo será reproduzido em modo sem som e o usuário terá que tocar no vídeo para reativá-lo.

4

controls

Ter este atributo no amp-video mostrará controles no vídeo semelhantes ao vídeo html5.

5

loop

Se este atributo estiver presente no amp-video, o vídeo será reproduzido novamente quando terminar.

6

crossorigin

Este atributo entra em cena se o recurso para reproduzir o vídeo estiver em uma origem diferente.

7

rotate-to-fullscreen

Se o vídeo estiver visível, ele será exibido em tela cheia depois que o usuário girar o dispositivo para o modo paisagem

Vídeo AMP de reprodução automática

Podemos usar o atributo autoplay no caso de precisarmos reproduzir o vídeo automaticamente. Este recurso funcionará de acordo com o suporte do navegador. Observe que o vídeo ficará sem som durante a reprodução automática. Quando o usuário tocar no vídeo, o som será ativado.

Deixe-nos o recurso de reprodução automática com a ajuda de um exemplo de trabalho conforme fornecido abaixo -

Exemplo

<!doctype html>
<html amp lang = "en">
   <head>
      <meta charset = "utf-8">
      <script async src = "https://cdn.ampproject.org/v0.js"></script>
      <title>Google AMP - Amp Video</title>
      <link rel = "canonical" href = "http://example.ampproject.org/article-metadata.html">

      <meta name = "viewport" content = "width=device-width,minimum-scale = 1, initial-scale = 1">

      <style amp-boilerplate>
         body {
            -webkit-animation:
            -amp-start 8s steps(1,end) 0s 1 normal both;
            -moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:
            -amp-start 8s steps(1,end) 0s 1 normal both;animation:
            -amp-start 8s steps(1,end) 0s 1 normal both
         }
         @-webkit-keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}
      </style>
      <noscript>
         <style amp-boilerplate>
            body{
               -webkit-animation:none;
               -moz-animation:none;
               -ms-animation:none;
               animation:none
            }
         </style>
      </noscript>

      <script async custom-element = "amp-video" src = "
         https://cdn.ampproject.org/v0/amp-video-0.1.js">
      </script>
   </head>
   <body>
      <h3>Google AMP - Amp Video Autoplay</h3>
      <amp-video controls
         width = "640"
         height = "360"
         layout = "responsive"
         poster = "images/videoposter.png" autoplay>
         <source src = "video/bunny.webm" type = "video/webm" />
         <source src = "video/samplevideo.mp4" type = "video/mp4" />
         <div fallback>
            <p>This browser does not support the video element.</p>
         </div>
      </amp-video>
   </body>
</html>

Você pode ativar os controles do vídeo adicionando o atributo de controles conforme mostrado no código a seguir -

<amp-video controls
   width = "640"
   height = "360"
   layout = "responsive"
   poster = "images/videoposter.png" autoplay>
   <source src = "video/bunny.webm" type = "video/webm" />
   <source src = "video/samplevideo.mp4" type = "video/mp4" />
   <div fallback>
      <p>This browser does not support the video element.</p>
   </div>
</amp-video>