スキップしたミッドロール挿入点に戻る

動画のパブリッシャーは、視聴者が ミッドロール広告をスキップできますユーザーがミッドロール挿入点を超えてシークすると、 その広告ブレークの先頭に戻って そのミッドロール挿入点が完了した後に、シークする位置にユーザーが移動します。この 「スナップバック」と呼ばれます。

例として、以下の図をご覧ください。視聴者が動画を視聴している 5 分の時点から 15 分の時点までシークします。 ただし、希望する 10 分の時点でミッドロール挿入点を ユーザーが次のコンテンツを視聴する前に、次の動画を視聴するようユーザーに促すことができます。

このミッドロール挿入点を表示する方法は次のとおりです。

  1. ユーザーがシークを実行して、視聴していないミッドロール挿入点を通過したかどうかを確認します。 その場合はミッドロール挿入点に戻ります
  2. ミッドロール挿入点が完了したら、元の移動に戻ります。

図形式では、次のようになります。

IMA DAI SDK を使用してスナップパックを実装する手順は次のとおりです。 高度な例

シークで広告ブレークが再生されないままにならないようにする

ユーザーが再生していない広告ブレークを通過したシークをユーザーが実行したかどうかを確認します。 その場合はミッドロール挿入点に戻ります Roku Advanced サンプルは、リモートボタンの押下によって ユーザーが移動 - ユーザーが進むボタンを押すたびに、 設定した秒数だけ進めます。同じ このジャンプを処理するメソッドは、そのジャンプが ユーザーがミッドロール挿入点を過ぎたり入ったりした場合、ユーザーは 次のように挿入できます。

Function handleFastForward(player as Object, streamManager as Object, updatedTime As Integer)
  previousAd = streamManager.getPreviousCuePoint(updatedTime)
  If previousAd = Invalid or previousAd.hasPlayed
    player.seek(updatedTime * 1000)
  Else If previousAd.start > player.currentTime
    player.isSnapback = True
    player.timeAfterSnapback = updatedTime
    player.seek(previousAd.start * 1000 + 1000)
  End If
End Function

ユーザーを元の検索モードに戻す

adBreakEnded ハンドラで、以前の広告が スナップバックの結果として再生されました。含まれている場合は、 ユーザーが最初に移動しようとしていた場所まで、 (再生されたばかりのミッドロール挿入点の途中ではなかったため):

player.adBreakEnded = Function(adBreakInfo as Object)
  If m.isSnapback
    m.seek(m.timeAfterSnapback * 1000)
    m.isSnapback = False
  End If
End Function