ویجت (vPlus) به نویسنده این امکان را می دهد که یک اسلاید HTML ایجاد کند که با یک ویدیو همگام شده است. مزایای vPlus نسبت به یک ویدیوی سنتی عبارتند از:
- اسلایدها می توانند از ویژگی های DevSite استفاده کنند مانند:
نویسنده می تواند کنترل کند که آیا ویدیو در گوشه ای از اسلاید نشان داده می شود، کل اسلاید را پوشش می دهد یا متوقف می شود در حالی که کاربر با یک اسلاید تعامل دارد.
نسخه ی نمایشی
در زیر نمونه ای از vPlus است که ویژگی های آن را نشان می دهد. برای شروع دکمه Play را فشار دهید.
طرحواره
ویجت Video Plus با علامت گذاری یک عنصر با کلاس devsite-vplus
ایجاد می شود. علاوه بر این، آن عنصر باید دارای ویژگی data-video-id
باشد که شناسه ویدیوی YouTube را که قرار است نشان داده شود، مشخص کند.
اگر عنصر ویجت دارای ویژگی 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
داشته باشد. این ویژگی دو مقدار معتبر دارد:
- "بزرگ": باعث می شود که ویدیو بیشتر فضای اسلاید را اشغال کند و اسلاید را بپوشاند.
- "stoped": باعث می شود که ویدیو با رسیدن به آن اسلاید متوقف شود.
اگر حالت داده-ویدئو مشخص نشده باشد، ویدیو به طور پیش فرض در اندازه کوچک خود قرار می گیرد.
نویسندگان اسلاید احتمالاً می خواهند CSS اضافی را برای اسلایدهای خود مشخص کنند. از آنجایی که اسلایدها در یک div
با کلاس devsite-vplus-slide-frame
قرار دارند، سبکهای 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 در یک صفحه نمایش داده می شود، پخش کننده ویدیو به طور خودکار راه اندازی نمی شود، اما پس از زدن دکمه پخش توسط کاربر، اسلایدها و زیرنویس ها، در صورت نمایش، به طور خودکار پیشرفت می کنند. کاربران همچنین می توانند از اقدامات ماوس و صفحه کلید زیر برای تعامل با ویجت استفاده کنند.