El widget (vPlus) permite al autor crear una presentación de diapositivas HTML que se sincroniza con un video. Los beneficios de vPlus en comparación con un video tradicional son los siguientes:
- diapositivas pueden usar funciones de DevSite como las siguientes:
- incluye que facilitan la reutilización de contenido
- condicionales para mostrar contenido adaptado a diferentes públicos en el que la misma diapositiva se referiría a tecnología interna para Googlers y contenido de Google Cloud Platform para el público en general
El autor puede controlar si el video se muestra en una esquina de la diapositiva, que cubre toda la diapositiva, o si se detiene mientras el usuario interactúa con una diapositiva.
Demostración
El siguiente es un ejemplo de vPlus en el que se muestran sus funciones. Presiona el botón Play para comenzar.
Esquema
Para crear un widget Video Plus, se debe marcar un elemento con la clase devsite-vplus
. Además, el elemento debe contener un atributo data-video-id
que especifique el ID del video de YouTube que se mostrará.
Si el elemento del widget también contiene un atributo data-captions-url
, debe especificar un archivo JSON con los subtítulos correspondientes al video. Este archivo debe estar en el mismo directorio que el archivo md
o html
, o bien, si comienza con una "/", la ruta de acceso al archivo comienza en la raíz. Consulta el reproductor de video vPlus para obtener detalles sobre el formato y la generación de este archivo. El archivo de subtítulos se debe extraer manualmente del video. Consulta //engedu/common/vplus/README.md
a fin de obtener más información y una herramienta para generar el archivo de subtítulos.
Además, el elemento devsite-vplus
debe contener un elemento con la clase devsite-vplus-content-container
. A su vez, ese elemento debe contener un elemento con la clase devsite-vplus-slide-frame
.
Se supone que cada elemento dentro del elemento devsite-vplus-slide-frame
es una diapositiva. Las diapositivas deben estar ordenadas cronológicamente. Cada elemento de diapositiva debe tener un atributo data-start-time
que especifique el tiempo en segundos durante el cual se debe mostrar la diapositiva. Además, cada diapositiva puede tener un atributo data-video-mode
. Ese atributo tiene dos valores válidos:
- "large": Hace que el video ocupe la mayor parte del espacio de la diapositiva y la cubra.
- "detenido": Hace que el video se detenga cuando llegue esa diapositiva.
Si no se especifica el modo de video y datos, el video se establecerá de forma predeterminada en su tamaño pequeño.
Es probable que los autores de diapositivas quieran especificar CSS adicionales para sus diapositivas. Como las diapositivas se encuentran en una div
con la clase devsite-vplus-slide-frame
, se pueden asignar espacios de nombres a los estilos CSS específicos de las diapositivas a los elementos secundarios de esta clase.
Por ejemplo:
<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>
Cuando se muestra el widget vPlus en una página, el reproductor de video no se inicia automáticamente, pero después de que el usuario presiona el botón de reproducción, las diapositivas y los subtítulos, si se muestran, avanzan automáticamente. Los usuarios también pueden usar las siguientes acciones del mouse y del teclado para interactuar con el widget.