書籤

本指南說明如何使用 IMA DAI SDK 導入書籤功能 在隨選影片 (VOD) 串流中使用動態廣告插播 (DAI) 時。 本文會假設 IMA DAI 導入成功,例如 開始使用

什麼是書籤?

書籤可讓使用者儲存並回到特定時間點 內容串流中。假設某位使用者觀看了五分鐘的內容 離開影片串流,然後返回該串流加入書籤可儲存 以便繼續觀看 讓觀眾享有流暢的觀看體驗。

DAI 內部書籤

將 DAI 串流加入書籤時,您必須記錄串流 ID 和時間 使用者離開影片時。當使用者回訪時,請重新提出要求 播放串流,然後跳轉至已儲存的時間。因為請求的每個執行個體 多個串流的廣告插播時間點只要儲存 根本無法運作但不打算想要做什麼 內容時間

因應之道的轉換方法

IMA DAI SDK 提供一組方法,用來請求內容時間 特定內容的串流時間串流時間內容 時間。使用這些轉換方法,您就能將 內容時間,然後跳轉至對應的串流時間, 新的串流執行個體做法如下,包括連結 以便在某個範例應用程式中,顯示可正常運作的書籤。

正在儲存書籤

在活動暫停時儲存書籤。

- (void)viewWillDisappear:(BOOL)animated {
  [super viewWillDisappear:animated];
  [self.contentPlayer pause];
  // Ignore this if you're presenting a modal view (e.g. in-app clickthrough).
  if ([self.navigationController.viewControllers indexOfObject:self] ==
      NSNotFound) {
    NSTimeInterval contentTime =
        [self.streamManager contentTimeForStreamTime:CMTimeGetSeconds(
            self.contentPlayer.currentTime)];
    self.video.savedTime = contentTime;
    ...
    }
  }
}

正在載入書籤

在重新要求直播時載入書籤。這個容器是將容器 VideoStreamPlayer 介面。

- (void)streamManager:(IMAStreamManager *)streamManager didReceiveAdEvent:(IMAAdEvent *)event {
  ...
  case kIMAAdEvent_STREAM_LOADED: {
    if (self.video.savedTime > 0) {
      NSTimeInterval streamTime =
          [self.streamManager streamTimeForContentTime:self.video.savedTime];
      [self.IMAVideoDisplay.playerItem
          seekToTime:CMTimeMakeWithSeconds(streamTime, NSEC_PER_SEC)];
      self.video.savedTime = 0;
    }
  }
}

範例應用程式

範例應用程式