Video Plus

Il widget (vPlus) consente all'autore di creare una presentazione HTML sincronizzata con un video. I vantaggi di vPlus rispetto a un video tradizionale sono:

  • possono utilizzare funzionalità di DevSite come:
    • include che semplificano il riutilizzo dei contenuti
    • condizionali per mostrare contenuti su misura per segmenti di pubblico diversi in cui la stessa slide fa riferimento a tecnologia interna per i Googler e contenuti di Google Cloud per il pubblico

L'autore può decidere se mostrare il video in un angolo della slide, coprendo l'intera slide, oppure se viene interrotto mentre l'utente interagisce con la slide.

Demo

Di seguito è riportato un esempio di vPlus che mostra le sue funzionalità. Premi il pulsante Riproduci per iniziare.

Demo vPlus
Nota per il titolo slide.
Questa slide è stata lasciata intenzionalmente vuota.
Bella slide informativa
  • Punto elenco utile e informativo
  • Un altro punto elenco utile e informativo
Molto meta. In questa nota, potremmo parlare di diversi aspetti:
  • Cosa potrebbe inserire nella nota rispetto alla slide stessa.
    • Può contenere HTML o markdown
    • Se sarebbe utile mostrare qualcosa allo spettatore. o solo nelle note che il presentatore farebbe presumibilmente vedere e leggere ad alta voce.
  • Gli utenti possono visualizzare le note autonomamente, solitamente offline.
  • Le note possono essere un modo collegamento alle demo.
Bella immagine di gatto informativo
Ecco alcuni contenuti interattivi
Di che colore è il cielo?
Blu
Ma sai il perché?
Viola
Non tanto
Indaco
C'eri quasi
di colore verde
Da quale pianeta vieni?
Nota: quando viene visualizzata una slide interattiva, devi fare clic sul pulsante "Riproduci" , o "Slide successiva" per continuare.
Ecco alcuni contenuti più interattivi: Blockly
Alla prossima!
  • Video Plus incrementa la riproduzione video e le slide
  • Riduce la necessità di ripetere le riprese del video se le slide cambiano
  • Fornisce trascrizione disponibile per la ricerca
  • Mette in pausa il video per le interazioni degli utenti
  • Il video può passare da grande a piccolo e viceversa

Schema

Un widget Video Plus viene creato contrassegnando un elemento con la classe devsite-vplus. Inoltre, questo elemento deve contenere un attributo data-video-id che specifichi l'ID del video di YouTube da mostrare.

Se l'elemento widget contiene anche un attributo data-captions-url, deve specificare un file json contenente i sottotitoli codificati corrispondenti al video. Questo file deve trovarsi nella stessa directory del file md o html oppure, se inizia con "/", il percorso del file inizia nella directory radice. Per informazioni dettagliate sul formato e sulla generazione di questo file, consulta il video player vPlus. Il file dei sottotitoli deve essere estratto manualmente dal video. consulta //engedu/common/vplus/README.md per informazioni dettagliate e uno strumento per generare il file dei sottotitoli codificati.

Inoltre, l'elemento devsite-vplus deve contenere un elemento con la classe devsite-vplus-content-container. A sua volta, tale elemento deve contenere un elemento con la classe devsite-vplus-slide-frame.

Ogni elemento all'interno dell'elemento devsite-vplus-slide-frame viene considerato una slide. Le slide devono essere elencate in ordine cronologico. Ogni elemento slide deve avere un attributo data-start-time che specifichi il tempo in secondi interi in cui deve essere visualizzata la slide. Inoltre, ogni slide potrebbe avere un attributo data-video-mode. Questo attributo ha due valori validi:

  • "large": il video occupa la maggior parte dello spazio della slide e occuperà completamente la slide.
  • "interrotto": il video viene messo in pausa quando viene raggiunta la slide.

Se data-video-mode non è specificata, le dimensioni predefinite del video sono ridotte.

Gli autori delle slide probabilmente vorranno specificare altri CSS per le loro slide. Poiché le slide sono contenute in un file div con classe devsite-vplus-slide-frame, gli stili CSS specifici delle slide possono avere uno spazio dei nomi agli elementi secondari di questa classe.

Ad esempio:

<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 il widget vPlus viene visualizzato su una pagina, il video player non si avvia automaticamente, ma dopo che l'utente fa clic sul pulsante di riproduzione, le slide e i sottotitoli, se visualizzati, vengono avanzati automaticamente. Gli utenti possono anche utilizzare le seguenti azioni del mouse e della tastiera per interagire con il widget.