위젯 (vPlus)을 사용하면 작성자가 동영상에 동기화되는 HTML 슬라이드 자료를 만들 수 있습니다. 기존 동영상에 비해 vPlus가 얻는 이점은 다음과 같습니다.
- 슬라이드에서는 다음과 같은 DevSite 기능을 사용할 수 있습니다. <ph type="x-smartling-placeholder">
작성자는 동영상을 슬라이드의 모서리에 표시할지, 전체 슬라이드를 덮을 때 표시할지 또는 사용자가 슬라이드와 상호작용하는 동안 정지할지 여부를 제어할 수 있습니다.
데모
다음은 vPlus의 기능을 보여주는 예입니다. 재생 버튼을 눌러 시작합니다.
스키마
Video Plus 위젯은 devsite-vplus
클래스로 요소를 표시하여 만들어집니다. 또한 이 요소는 표시할 YouTube 동영상의 ID를 지정하는 data-video-id
속성을 포함해야 합니다.
위젯 요소에 data-captions-url
속성도 포함된 경우 동영상에 해당하는 자막이 포함된 json 파일을 지정해야 합니다. 이 파일은 md
또는 html
파일과 동일한 디렉터리에 있어야 합니다. 또는 '/'로 시작하는 경우 파일 경로는 루트에서 시작합니다. 이 파일의 형식 및 생성에 대한 자세한 내용은 vPlus 동영상 플레이어를 참조하세요. 자막 파일은 동영상에서 수동으로 추출해야 합니다. 자세한 내용과 자막 파일 생성 도구는 //engedu/common/vplus/README.md
를 참고하세요.
또한 devsite-vplus
요소는 devsite-vplus-content-container
클래스가 있는 요소를 포함해야 합니다. 그러면 이 요소는 devsite-vplus-slide-frame
클래스가 있는 요소를 포함해야 합니다.
devsite-vplus-slide-frame
요소 내의 각 요소는 슬라이드로 가정됩니다. 슬라이드는 시간순으로 나열되어야 합니다. 각 슬라이드 요소에는 이 슬라이드를 표시해야 하는 전체 시간을 초 단위로 지정하는 data-start-time
속성이 있어야 합니다. 또한 각 슬라이드에 data-video-mode
속성이 있을 수 있습니다. 이 속성에는 두 가지 유효한 값이 있습니다.
- 'large': 동영상이 슬라이드를 덮는 슬라이드 공간 대부분을 차지하게 합니다.
- 'stop': 해당 슬라이드에 도달하면 동영상이 일시중지됩니다.
data-video-mode를 지정하지 않으면 동영상은 기본적으로 작은 크기로 설정됩니다.
슬라이드 작성자는 슬라이드에 추가 CSS를 지정하려고 할 것입니다. 슬라이드는 devsite-vplus-slide-frame
클래스를 사용하는 div
에 포함되어 있으므로 슬라이드별 CSS 스타일은 이 클래스의 하위 요소에 네임스페이스화될 수 있습니다.
예를 들면 다음과 같습니다.
<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>
vPlus 위젯이 페이지에 표시될 때 동영상 플레이어는 자동으로 시작되지 않지만 사용자가 재생 버튼을 누르면 슬라이드와 자막(표시되는 경우)이 자동으로 진행됩니다. 사용자는 다음과 같은 마우스 및 키보드 작업을 사용하여 위젯과 상호작용할 수도 있습니다.