סרטון פלוס

הווידג'ט (vPlus) מאפשר למחבר ליצור מצגת ב-HTML שמסתנכרנת עם סרטון. היתרונות של vPlus על פני סרטון מסורתי הם:

  • Slides יכולים להשתמש בתכונות של DevSite, כמו:
    • כוללות שמאפשרות שימוש חוזר בתוכן בקלות
    • תנאים להצגת תוכן שמותאם לקהלים שונים, כאשר אותו שקף יתייחס לטכנולוגיה פנימית לגוגלרים, ולתוכן של Google Cloud Platform לציבור הרחב

המחבר יכול לקבוע אם הסרטון יוצג בפינת השקף, יכסה את כל השקף, או אם הסרטון יופסק בזמן שהמשתמש מקיים אינטראקציה עם שקף.

הדגמה (דמו)

הדוגמה הבאה היא של vPlus שממחישה את התכונות שלו. כדי להתחיל, לוחצים על לחצן ההפעלה.

הדגמה של vPlus
הערה לגבי 'כותר' שקף.
השקף הזה נשאר ריק במכוון.
שקף אינפורמטיבי נחמד
  • נקודה מעניינת ואינפורמטיבית
  • עוד נקודה נחמדה ואינפורמטיבית
מטא-נתונים מאוד. בהערה הזו, נוכל לדבר על כמה דברים:
  • מה יכולים להופיע בהערה לעומת בשקף עצמו.
    • יכול להכיל HTML או Markdown
    • אם כדאי להציג משהו לצופה או רק בצלילים שסביר להניח שהמציג לראות ולהקריא בקול.
  • המשתמשים יכולים לצפות בהערות בעצמם, בדרך כלל במצב אופליין.
  • הערות יכולות להיות דרך קישור להדגמות.
תמונת חתול יפה ואינפורמטיבית
הנה תוכן אינטראקטיבי
מה הצבע של השמיים?
כחול
אבל אתם יודעים למה?
סגול
לא ממש
כחול כהה
סגור, אבל לא בדיוק
ירוק
מאיזה כוכב אתה?
הערה: כשמגיעים לשקף אינטראקטיבי, עליכם ללחוץ על 'הפעלה' לחצן, או במצגת הבאה כדי להמשיך.
הנה עוד תוכן אינטראקטיבי – Blockly
תודה שצפית!
  • התכונה Video Plus מעודדת הפעלת סרטונים ושקפים
  • כך יהיה צורך לצלם מחדש את הסרטון אם השקפים משתנים
  • כולל תמליל שניתן לחפש
  • השהיית הסרטון לצורך אינטראקציות של המשתמשים
  • ניתן לעבור בין סרטונים גדולים לקטנים

סכימה

ווידג'ט של Video Plus נוצר על ידי סימון רכיב במחלקה devsite-vplus. בנוסף, הרכיב חייב להכיל מאפיין data-video-id שמציין את המזהה של סרטון YouTube שיוצג.

אם רכיב הווידג'ט מכיל גם מאפיין data-captions-url, צריך לציין קובץ json שמכיל את הכתוביות שמתאימות לסרטון. הקובץ צריך להיות באותה ספרייה כמו הקובץ md או html. אם הוא מתחיל ב-'/', הנתיב לקובץ מתחיל מהרמה הבסיסית (root). לפרטים על הפורמט והיצירה של הקובץ הזה, אפשר לעיין בנגן הווידאו של 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": גורם לסרטון לתפוס את רוב שטח השקף, תוך כיסוי השקף.
  • "sStop" (נעצר): גורם להשהיית הסרטון כאשר מגיעים לשקף הזה.

אם לא צוין מצב נתונים-וידאו, הסרטון יוגדר כברירת מחדל לגודל הקטן שלו.

סביר להניח שמחברי שקפים ירצו לציין 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 מוצג בדף, נגן הווידאו לא מופעל באופן אוטומטי, אבל אחרי שהמשתמש לוחץ על לחצן ההפעלה, השקפים והכתוביות, אם הם מוצגים, מתקדמים באופן אוטומטי. המשתמשים יכולים גם לבצע את הפעולות הבאות בעכבר ובמקלדת כדי לבצע אינטראקציה עם הווידג'ט.