이 가이드에서는 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;
}
}
}