نشانک ها

این راهنما نحوه پیاده‌سازی نشانک‌گذاری را با استفاده از IMA DAI SDK هنگام استفاده از درج آگهی پویا (DAI) برای جریان‌های ویدیویی بر اساس تقاضا (VOD) نشان می‌دهد. این یک پیاده سازی IMA DAI را فرض می کند، مانند آنچه در Get Started ارائه شده است.

نشانه گذاری چیست؟

نشانک گذاری توانایی ذخیره و سپس بازگشت به یک نقطه خاص در جریان محتوا است. فرض کنید کاربر پنج دقیقه محتوا را تماشا می کند، جریان ویدیو را ترک می کند و سپس به آن باز می گردد. نشانک‌گذاری موقعیت کاربر را در جریان ذخیره می‌کند تا جریان بتواند از جایی که متوقف شده است ادامه یابد و تجربه‌ای بی‌نظیر برای بیننده فراهم کند.

نشانه گذاری DAI در زیر کاپوت

هنگام بوکمارک کردن یک جریان DAI، باید شناسه جریان و زمان خروج کاربر از ویدیو را ضبط کنید. پس از بازگشت کاربر، جریان را دوباره درخواست کنید و زمان ذخیره شده را جستجو کنید. از آنجایی که هر نمونه از جریان درخواستی می‌تواند دارای وقفه‌های تبلیغاتی با مدت زمان متفاوت باشد، صرفه‌جویی در زمان پخش کار نخواهد کرد. کاری که واقعاً می خواهید انجام دهید این است که از همان زمان محتوا ادامه دهید.

روش های تبدیل به نجات

IMA DAI SDK یک جفت روش برای درخواست زمان محتوا برای یک زمان پخش جریانی معین و زمان پخش برای یک زمان محتوا ارائه می دهد. با استفاده از این روش‌های تبدیل، می‌توانید زمان محتوای نشانه‌گذاری‌شده را ذخیره کنید و سپس زمان پخش متناظر را در نمونه جدید جریان جستجو کنید. در اینجا این رویکرد است، از جمله پیوندی به یک برنامه نمونه که اجرای نشانه‌گذاری کارآمد را نشان می‌دهد.

ذخیره نشانک ها

هنگامی که پخش کننده محتوا متوقف می شود، یک نشانک ذخیره کنید.

onPause() {
   var bookmarkTime = Math.floor(
   streamManager.contentTimeForStreamTime(videoElement.currentTime));
}

در حال بارگیری نشانک ها

هنگام درخواست مجدد جریان، نشانک را بارگیری کنید.

function loadUrl(url) {
  hls.on(Hls.Events.MANIFEST_PARSED, () => {
    var startTime = 0;
    if (bookmarkTime) {
      var startTime = streamManager.streamTimeForContentTime(bookmarkTime);
      // Seeking on load triggers the onSeekEnd event, so treat this seek as
      // if it's snapback. Without this, resuming at a bookmark kicks you
      // back to the ad before the bookmark.
      isSnapback = true;
    }
    hls.startLoad(startTime);
    videoElement.addEventListener('loadedmetadata', () => { videoElement.play(); });
  });
  hls.loadSource(url);
  hls.attachMedia(videoElement);
}

نمونه برنامه

برای مشاهده اجرای نشانک گذاری ، برنامه Sample را دانلود کنید .