북마크

이 가이드에서는 IMA DAI SDK를 사용하여 북마크를 구현하는 방법을 보여줍니다. 을 사용해야 합니다. 위의 예제에 표시된 것과 같이 작동하는 IMA DAI 구현이 시작하기

북마크란 무엇인가요?

북마크는 저장한 다음 특정 지점으로 돌아갈 수 있는 기능입니다. 콘텐츠를 스트리밍할 수 있습니다. 사용자가 콘텐츠를 5분 동안 시청한다고 가정해 보겠습니다. 동영상 스트림을 나갔다가 돌아옵니다. 북마크를 추가하면 스트림 내 사용자의 위치를 뜻합니다. 시청자에게 원활한 경험을 제공합니다.

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;
    ...
    }
  }
}

북마크 로드 중

스트림을 다시 요청할 때 북마크를 로드합니다. Cloud Functions는 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;
    }
  }
}

샘플 앱

샘플 앱