このガイドでは、動画オンデマンド(VOD)ストリームにダイナミック広告挿入(DAI)を使用する場合に、IMA DAI SDK を使用してブックマーク機能を実装する方法について説明します。 このガイドでは、スタートガイドで説明されているような、IMA DAI の実装が完了していることを前提としています。
ブックマークとは
ブックマークは、コンテンツ ストリームのあるポイントを保存し、後でそこから再生する機能です。たとえば、ユーザーが 5 分間のコンテンツを見ているとします。動画ストリーム中に視聴を中断して、後で中断したところから再生を再開できます。ブックマークはユーザーのストリーム内の位置を保存するので、中断したところからストリームを再開でき、視聴者にシームレスな体験を提供します。
DAI ブックマークの仕組み
DAI ストリームをブックマークする場合は、ユーザーが動画を離れたときのストリーム ID と時刻を記録する必要があります。ユーザーが戻ってきたら、ストリームを再リクエストして、保存した時刻までシークします。リクエストされたストリームのインスタンスごとに広告ブレークの長さが異なる可能性があるため、ストリーム時刻を保存するだけではうまくいきません。実際には、同じコンテンツ時刻 から再開する必要があります。
変換方法の活用
IMA DAI SDK には、指定されたストリーム時刻 のコンテンツ時刻 と、指定されたコンテンツ時刻 のストリーム時刻 をリクエストするメソッドが用意されています。これらの変換方法を使用すると、ブックマークされたコンテンツ時刻 を保存し、ストリームの新しいインスタンスで対応するストリーム時刻 までシークできます。ブックマーク機能の実装方法を示すサンプルアプリへのリンクなど、アプローチについて説明します。
ブックマークを保存する
アクティビティが一時停止したら、ブックマークを保存します。
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