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

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

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

ブックマークとは

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

DAI ブックマークの仕組み

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

変換方法の活用

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

ブックマークを保存する

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

private double bookmarkTime;
@Override
public void onPause() {
    super.onPause();
    double streamTime = videoPlayer.getCurrentPosition() / 1000.0; // ms to s.
    bookmarkTime = streamManager.getContentTimeForStreamTime(streamTime);
}

ブックマークを読み込む

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

public void loadUrl(String url, List<HashMap<String, String>> subtitles) {
    // Set video player's stream URL and subtitles, and play the stream.
    ...

    // Bookmarking.
    if (bookmarkTime > 0) {
        double streamTime =
                streamManager.getStreamTimeForContentTime(bookmarkTime);
        videoPlayer.seek((long) (streamTime * 1000.0)); // s to ms.
    }
}

サンプルアプリ

ブックマーク機能の実装を確認するには 、サンプルアプリをダウンロードしてください。