Vídeo do Google+

O widget (vPlus) permite que o autor crie uma apresentação de slides HTML sincronizada com um vídeo. Os benefícios do vPlus em relação a um vídeo tradicional são:

  • slides podem usar recursos do DevSite, como:
    • inclui, que facilitam a reutilização do conteúdo
    • condicionais para mostrar conteúdo personalizado para diferentes públicos em que o mesmo slide se refere à tecnologia interna para Googlers e conteúdo do Google Cloud Platform para o público em geral.

O autor pode controlar se o vídeo vai aparecer em um canto do slide, cobrindo o slide inteiro ou se ele será interrompido enquanto o usuário interage com ele.

Demonstração

Confira abaixo um exemplo de vPlus demonstrando os recursos. Pressione o botão Reproduzir para começar.

Demonstração do vPlus
Observação sobre o "title" slide.
Este slide foi intencionalmente deixado em branco.
Belo slide informativo
  • Marcador bom e informativo
  • Outro item interessante e informativo
Muito meta. Nessa nota, podemos falar sobre várias coisas:
  • O que a nota poderia colocar em comparação com o próprio slide.
    • Pode conter HTML ou markdown
    • Se seria útil exibir algo para o espectador ou apenas nas anotações que o apresentador supostamente ver e ler em voz alta.
  • Os próprios usuários podem ver as notas, geralmente off-line.
  • As anotações podem ser uma forma Links de demonstrações.
Foto de gato bonita e informativa
Confira alguns conteúdos interativos
Qual é a cor do céu?
Azul
Mas você sabe por quê?
Roxo
Não muito
Índigo
Quase lá
Verde
De que planeta você é?
Quando um slide interativo é exibido, clique no botão "Reproduzir" botão ou o "Próximo slide" para continuar.
Confira mais conteúdo interativo: Blockly
Agradecemos por assistir!
  • O Video Plus impulsiona a reprodução de vídeo e os slides
  • Reduz a necessidade de gravar novamente o vídeo se os slides forem alterados
  • Fornece transcrição pesquisável
  • Pausa o vídeo para interações do usuário
  • O vídeo pode alternar entre grande e pequeno

Esquema

Um widget de vídeo Plus é criado ao marcar um elemento com a classe devsite-vplus. Além disso, esse elemento precisa conter um atributo data-video-id especificando o ID do vídeo do YouTube que será mostrado.

Se o elemento do widget também tiver um atributo data-captions-url, ele vai precisar especificar um arquivo json com as legendas correspondentes ao vídeo. Esse arquivo precisa estar no mesmo diretório que o arquivo md ou html ou, se começar com "/", o caminho para o arquivo começará na raiz. Consulte o player de vídeo vPlus para ver detalhes sobre o formato e a geração desse arquivo. O arquivo de legendas precisa ser extraído manualmente do vídeo. consulte //engedu/common/vplus/README.md para mais detalhes e uma ferramenta para gerar o arquivo de legendas.

Além disso, o elemento devsite-vplus precisa conter um elemento com a classe devsite-vplus-content-container. Por sua vez, esse elemento precisa conter um elemento com a classe devsite-vplus-slide-frame.

Cada elemento dentro de devsite-vplus-slide-frame é considerado um slide. Os slides devem ser listados em ordem cronológica. Cada elemento de slide deve ter um atributo data-start-time especificando o tempo em segundos inteiros em que esse slide deve ser exibido. Além disso, cada slide pode ter um atributo data-video-mode. Esse atributo tem dois valores válidos:

  • "large": faz com que o vídeo ocupe a maior parte do espaço do slide, cobrindo o slide.
  • "interrompido": faz com que o vídeo seja pausado quando o slide é alcançado.

Se data-video-mode não for especificado, o vídeo usará o tamanho pequeno por padrão.

Os autores dos slides provavelmente desejarão especificar um CSS adicional para os slides. Como os slides estão em um div com a classe devsite-vplus-slide-frame, os estilos CSS específicos para slides podem receber namespaces para elementos filhos dessa classe.

Exemplo:

<style>
    .devsite-vplus-slide-frame h1 {
      background-color: #4285F4;
      border-bottom: 1px solid #7BAAF7;
      color: #fff;
      margin: 0;
      padding: 10px;
      top: 0 !important;
    }
    /* More styles... */
  </style>
  <div class="devsite-vplus" data-video-id="PXVnv_Paexc" data-captions-url="video-plus-captions.json">
  <div class="devsite-vplus-content-container">
    <div class="devsite-vplus-slide-frame">
      <div data-start-time=0 class="title-background">
        <div class="header1 title">vPlus Demo</div>
      </div>
      <div data-slide-note=true>
        Note for the 'title' slide.
      </div>
      <div data-start-time=2 data-video-mode="large">
        <!-- Intentionally left blank -->
      </div>
      <div data-slide-note=true>
        This slide was intentionally left blank.
      </div>
      <div data-start-time=13>
        <div class="header2">Nice Informative Slide</div>
        <ul>
          <li>Nice, informative bullet point</li>
          <li>Another nice, informative bullet point</li>
        </ul>
      </div>
      <div data-slide-note=true>
        Very meta.  In this note, we could talk about several things:
        <ul>
          <li>What could go in the note versus in the slide itself.
            <ul>
              <li>Either can contain HTML or markdown</li>
              <li>Whether it would be useful to display something to the viewer
                or only in the notes that the presenter would presummably
                see and may read out loud.</li>
            </ul>
          </li>
          <li>Users may view notes themselves, usually offline.</li>
          <li>Notes could be a way of
            <a href="#demo">linking to demos</a>.
          </li>
        </ul>
      </div>
      <div data-start-time=21>
        <div class="header2">Nice, informative cat picture</div>
        <div>
          <!-- Image CCO Public Domain at https://pixabay.com/en/kitten-cute-feline-kitty-domestic-1246693/ -->
          <img class="cat-pic" src="https://cdn.pixabay.com/photo/2016/03/09/15/31/kitten-1246693_1280.jpg">
        </div>
      </div>
      <div data-start-time=32 data-video-mode="stopped">
        <div class="header2">Here's some interactive content</div>
        <div>
          <devsite-multiple-choice>
            <div>What color is the sky?</div>
            <div correct>
              <div>Blue</div>
              <div>But do you know <b>why</b>?</div>
            </div>
            <div>
              <div>Purple</div>
              <div>Not really</div>
            </div>
            <div>
              <div>Indigo</div>
              <div>Close but not quite</div>
            </div>
            <div>
              <div>Green</div>
              <div>What planet are you from?</div>
            </div>
          </devsite-multiple-choice>
        </div>
      </div>
      <div data-slide-note="true">
        Note, when an interactive slide is reached,
        you have to click the 'Play' button,
        or the 'Next Slide' button in order to continue.
      </div>
      <div data-start-time=33 data-video-mode="stopped">
        <div class="header2">Here's some more interactive content - <a href="/blockly/">Blockly</a></div>
        <iframe style="height: 75%; width: 90%; margin: 0 5%;" src="/blockly/blockly-demo/blockly-demo"></iframe>
      </div>
      <div data-start-time=34 data-video-mode="large">
        <!-- Intentionally left blank -->
      </div>
      <div data-start-time=78>
        <div>
          <div class="header2">Thanks for watching!</div>
          <ul>
            <li>Video Plus drives video play and slides</li>
            <li>Reduces need to reshoot video if slides change</li>
            <li>Provides searchable transcript</li>
            <li>Pauses video for user interactions</li>
            <li>Video can switch between large and small</li>
          </ul>
        </div>
      </div>
    </div>
  </div>
</div>

Quando o widget vPlus é exibido em uma página, o player de vídeo não é iniciado automaticamente, mas depois que o usuário pressiona o botão de reprodução, os slides e as legendas, se exibidos, são avançados automaticamente. Os usuários também podem usar as seguintes ações de mouse e teclado para interagir com o widget.