این راهنما نحوهی پیادهسازی بوکمارک با استفاده از IMA DAI SDK را هنگام استفاده از درج پویای تبلیغات (DAI) برای پخشهای ویدیویی درخواستی (VOD) نشان میدهد. این امر مستلزم پیادهسازی IMA DAI کارآمد، مانند آنچه در «شروع به کار» ارائه شده است، میباشد.
بوکمارک کردن چیست؟
نشانهگذاری (Bookmarking) قابلیتی است که به کاربر اجازه میدهد محتوای مورد نظر خود را ذخیره کند و سپس به نقطهای خاص در جریان محتوا بازگردد. فرض کنید کاربری پنج دقیقه از یک محتوا را تماشا میکند، از جریان ویدیو خارج میشود و سپس به آن بازمیگردد. نشانهگذاری، موقعیت کاربر را در جریان ذخیره میکند تا جریان بتواند از جایی که متوقف شده است، ادامه یابد و تجربهای بینقص را برای بیننده فراهم کند.
نشانهگذاری DAI در پسزمینه
هنگام نشانهگذاری یک استریم DAI، باید شناسه استریم و زمان خروج کاربر از ویدیو را ثبت کنید. وقتی کاربر برمیگردد، دوباره درخواست استریم دهید و به زمان ذخیره شده مراجعه کنید. از آنجایی که هر نمونه از استریم درخواستی میتواند دارای وقفههای تبلیغاتی با مدت زمانهای مختلف باشد، صرفاً ذخیره زمان استریم کارساز نخواهد بود. کاری که واقعاً میخواهید انجام دهید این است که از همان زمان محتوا ادامه دهید.
روشهای تبدیل به نجات
کیت توسعه نرمافزار IMA DAI دو روش برای درخواست زمان محتوا برای یک زمان پخش مشخص و زمان پخش برای یک زمان محتوای مشخص ارائه میدهد. با استفاده از این روشهای تبدیل، میتوانید زمان محتوای نشانهگذاری شده را ذخیره کنید و سپس در نمونه جدید پخش، زمان پخش مربوطه را جستجو کنید. در اینجا روش کار، به همراه لینکی به یک برنامه نمونه که پیادهسازی نشانهگذاری را نشان میدهد، آورده شده است.
ذخیره بوکمارکها
وقتی فعالیت متوقف میشود، یک نشانک ذخیره میشود.
Saves the current time as a bookmark in the current video.
Function saveBookmarkTime(player as Object, streamManager as Object) as Void
m.videos[player.video.index].bookmarkTime =
streamManager.getContentTime(player.currentTime * 1000)
End Function
بارگیری نشانکها
هنگام درخواست مجدد پخش، نشانک را بارگذاری کنید. این بخشی از پیادهسازی رابط VideoStreamPlayer است.
player.loadUrl = Function(streamInfo as Object)
...
If m.video.bookmarkTime > 0
streamTime = m.streamManager.getStreamTime(m.video.bookmarkTime)
m.videoPlayer.seek(streamTime)
End If
End Function