기본 SDK를 사용하여 장치 간 재개

이 항목에서는 브라이트코브 네이티브 SDK에서 교차 장치 재개를 사용하는 방법에 대해 알아봅니다.

개요

장치 간 재개를 통해 시청자는 한 장치에서 비디오 시청을 시작하고 나중에 동일한 장치 또는 다른 장치에서 중단한 부분부터 비디오를 계속 볼 수 있습니다.

누군가가 휴대기기에서 동영상을 보기 시작했다고 가정해 보겠습니다. 나중에 웹 브라우저에서 플레이어로 동일한 비디오를 계속 볼 수 있습니다. 재생은 중단된 지점부터 계속되므로 하나도 놓치지 않습니다.

이 기능에 익숙하지 않은 경우개요를 참조하십시오. 크로스 디바이스 이력서문서.

요구 사항

다음 요구 사항은 Brightcove Native SDK를 사용한 교차 장치 재개에 필요합니다.

브라이트코브 네이티브 SDK 버전

  • 안드로이드 6.13.1+용 네이티브 SDK
  • iOS 6.0.1 이상용 네이티브 SDK, 펄스 6.7.5 이상용, SSAI 6.7.7 이상용

디바이스 OS 버전

  • 안드로이드 6.0+
  • iOS 11.0 이상

설정

이 기능은 브라이트코브 비디오 클라우드 계정을 가진 모든 사용자가 사용할 수 있습니다.

시작하려면 다음을 수행하십시오.

  • 교차 장치 재개를 위해 계정을 활성화하려면 계정 관리자에게 문의하십시오.
  • 사용 중인 비디오가 동적 전송을 위해 수집되었는지 확인

장치 간 이력서 구현

교차 기기 재개를 구현하려면 다음 단계를 따르세요.

  1. Brightcove 분석을위한 사용자 식별자 설정

    시청자 데이터가 브라이트코브 분석으로 자동으로 전송되더라도 사용자 식별자를 설정해야 합니다.

    인증 게이트웨이 또는 일부 ID 관리 솔루션을 사용하여 뷰어를 추적 할 수 있습니다. 이 뷰어 ID를 사용자 식별자로 사용하여 Brightcove 분석에 전달합니다.

  2. XDR(Cross-Device Resume) API에서 뷰어 재생 위치 가져오기

  3. 재생 다시 시작

안드로이드 구현

Android 용 네이티브 SDK의 경우 다음 단계를 따르세요.

  1. 브라이트코브 분석의 사용자 식별자를 설정합니다.

    HashMap<String, String> baseParams = new HashMap<>();
    baseParams.put(Analytics.Fields.USER, "viewer id");
    baseParams.put(Analytics.Fields.APPLICATION_ID, "application id");
    
    HashMap<String, Object> eventParams = new HashMap<>();
    eventParams.put(Analytics.Fields.BASE_PARAMS, baseParams);
    eventEmitter.emit(EventType.ADD_ANALYTICS_BASE_PARAMS, eventParams);
    
  2. XDR(Cross-Device Resume) API에서 뷰어 재생 위치를 가져옵니다.

    자세한 내용은 다음을 참조하십시오.

  3. 재생을 다시 시작합니다.

    XDR API에서 뷰어 재생 위치를 가져오면 해당 지점에서 재생을 다시 시작할 수 있습니다. brightcoveVideoView.seekTo()메서드를 사용하여 플레이헤드 위치를 설정합니다.

    final VideoPlaybackController playbackController = brightcoveVideoView.getPlaybackController();
    eventEmitter.on(EventType.VIDEO_DURATION_CHANGED, new EventListener() {
      @Override
      public void processEvent(final Event event) {
        playbackController.setAdsDisabled(true);
        brightcoveVideoView.seekTo(<viewer playhead position>);
      }
    });
    
    eventEmitter.on(EventType.DID_SEEK_TO, new EventListener() {
      @Override
      public void processEvent(final Event event) {
        playbackController.setAdsDisabled(false);
      }
    });
    

iOS 구현

iOS용 네이티브 SDK의 경우 다음 단계를 따르세요.

  1. 브라이트코브 분석의 사용자 식별자를 설정합니다.

    @try
      {
        [BCOVGlobalConfiguration.sharedConfig setValue:@{
          @"privateUser": self.viewer id,
          @"privateApplication": @"application id"
        }
        forKey:@"privateSessionAnalytics"];
      }
      @catch (NSException *e)
      {
        NSLog(@"%@", e.description);
      }
    
  2. XDR(Cross-Device Resume) API에서 뷰어 재생 위치를 가져옵니다.

    자세한 내용은 다음을 참조하십시오.

  3. 재생을 다시 시작합니다.

    XDR API에서 뷰어 재생 위치를 가져오면 해당 지점에서 재생을 다시 시작할 수 있습니다. 다음 방법을 사용하여 재생 헤드 위치를 설정합니다.

    -[BCOVPlaybackController seekWithoutAds:(CMTime)seekToTime completionHandler:(void (^)(BOOL finished))completion]
    

    이렇게 하면 시청자가 이전에 예약된 광고를 시청하지 않아도 특정 시간에 재생을 재개할 수seekToTime있습니다.

    이에seekWithoutAds:completionHandler:대비하여 설정할autoPlay때 비활성화하십시오BCOVPlaybackController .

    Apple에서는 를 사용하기 전에 상태가 재생 준비AVPlayerItem완료로 변경될 때까지 기다릴 것을 권장합니다AVPlayerItem . 그러므로 전화seekWithoutAds:completionHandler:에서kBCOVPlaybackSessionLifecycleEventReady의 핸들러playbackController:playbackSession:didReceiveLifecycleEvent당신의 방법BCOVPlaybackControllerDelegate .

    광고없는 검색에 대한 자세한 내용은 다음을 참조하십시오.

    • IMA
    • FreeWheel
    • Pulse는 IMA 또는 FreeWheel과 같은 방식으로 광고없이 검색을 구현합니다.
    • SSAI