広告ストリームのブックマークを保存、読み込む

プラットフォームを選択: HTML5 Android iOS tvOS Roku

このガイドでは、ビデオ オンデマンド(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

サンプルアプリ

サンプルアプリ