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

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

このガイドでは、動画オンデマンド(VOD)ストリームにダイナミック広告挿入(DAI)を使用する場合に、IMA DAI SDK を使用してブックマーク機能を実装する方法について説明します。 このガイドでは、スタートガイドで説明されているような、IMA DAI の実装が完了していることを前提としています。

ブックマークとは

ブックマークは、コンテンツ ストリームのあるポイントを保存し、後でそこから再生する機能です。たとえば、ユーザーが 5 分間のコンテンツを見ているとします。動画ストリーム中に視聴を中断して、後で中断したところから再生を再開できます。ブックマークはユーザーのストリーム内の位置を保存するので、中断したところからストリームを再開でき、視聴者にシームレスな体験を提供します。

DAI ブックマークの仕組み

DAI ストリームをブックマークする場合は、ユーザーが動画を離れたときのストリーム ID と時刻を記録する必要があります。ユーザーが戻ってきたら、ストリームを再リクエストして、保存した時刻までシークします。リクエストされたストリームのインスタンスごとに広告ブレークの長さが異なる可能性があるため、ストリーム時刻を保存するだけではうまくいきません。実際には、同じコンテンツ時刻 から再開する必要があります。

変換方法の活用

IMA DAI SDK には、指定されたストリーム時刻コンテンツ時刻 と、指定されたコンテンツ時刻ストリーム時刻 をリクエストするメソッドが用意されています。これらの変換方法を使用すると、ブックマークされたコンテンツ時刻 を保存し、ストリームの新しいインスタンスで対応するストリーム時刻 までシークできます。ブックマーク機能の実装方法を示すサンプルアプリへのリンクなど、アプローチについて説明します。

ブックマークを保存する

アクティビティが一時停止したら、ブックマークを保存します。

- (void)viewWillAppear:(BOOL)animated {
  ...
  self.bookmarkTime =
      [self.streamManager contentTimeForStreamTime:CMTimeGetSeconds(
          self.playerViewController.player.currentTime)];
}

ブックマークを読み込む

ストリームを再リクエストするときにブックマークを読み込みます。これは、VideoStreamPlayer インターフェースの実装の一部です。

- (void)streamManagerIsPlaybackReady:(IMAStreamManager *)streamManager {
...
  if (self.bookmarkTime != 0) {
    NSTimeInterval streamTime = [self.streamManager
        streamTimeForContentTime:self.bookmarkTime];
    [self.playerViewController.player
        seekToTime:CMTimeMakeWithSeconds(streamTime, NSEC_PER_SEC)];
  }
}

サンプルアプリ

サンプルアプリ