サポート問い合わせ先| システムステータス
ページコンテンツ

    ネイティブSDKを使用したクロスデバイスレジューム

    このトピックでは、BrightcoveネイティブSDKでクロスデバイスレジュームを使用する方法を学習します。

    概要

    Cross-Device Resumeを使用すると、視聴者は1つのデバイスでビデオの視聴を開始し、後で別のデバイスで中断したところからビデオの視聴を続けることができます。

    この機能に慣れていない場合は、「概要」を参照してください。クロスデバイス再開ドキュメント

    要件

    Brightcove Native SDKを使用したクロスデバイスレジュームには、次の要件が必要です。

    Brightcoveのネイティブ SDK バージョン

    • Android6.13.1以降用のネイティブSDK
    • iOS 6.0.1以降用のネイティブ SDK、Pulse 6.7.5以降用、SSAI 6.7.7以降の場合

    デバイスOSのバージョン

    • Android 6.0+
    • iOS 11.0以降

    セットアップ

    この機能は、Brightcove 動画クラウドアカウントをお持ちの方であれば誰でも利用できます。

    開始するには、次の操作を行います。

    • アカウントでデバイスをまたいだ再開を有効にする場合は、アカウントマネージャーにお問い合わせください
    • 使用している動画がダイナミック配信用に取り込まれていることを確認します

    クロスデバイス再開の実装

    クロスデバイス再開を実装するには、次の手順を実行します。

    1. Brightcoveアナリティクスのユーザー ID を設定する

      視聴者のデータは自動的に Brightcove アナリティクスに送信されますが、ユーザー ID を設定する必要があります。

      認証ゲートウェイまたは一部の ID 管理ソリューションを使用して、閲覧者を追跡できます。このビューアIDをユーザー識別子として使用して、Brightcoveアナリティクスに渡します。

    2. Cross-Device Resume(XDR)APIからビューアの再生位置を取得します

    3. 再生を再開する

    Androidの実装

    Android 用ネイティブ SDK の場合は、次の手順を実行します。

    1. Brightcoveアナリティクスのユーザー ID を設定します。

      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. Cross-Device Resume(XDR)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. Brightcoveアナリティクスのユーザー ID を設定します。

      @try
        {
          [BCOVGlobalConfiguration.sharedConfig setValue:@{
            @"privateUser": self.viewer id,
            @"privateApplication": @"application id"
          }
          forKey:@"privateSessionAnalytics"];
        }
        @catch (NSException *e)
        {
          NSLog(@"%@", e.description);
        }
      
    2. Cross-Device Resume(XDR)APIからビューアの再生位置を取得します。

      詳細については、以下を参照してください。

    3. 再生を再開します。

      XDR APIからビューアの再生位置を取得すると、その時点から再生を再開できます。次の方法を使用して、再生ヘッドの位置を設定します。

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

      これにより、視聴者に以前にスケジュールされた広告を視聴させることなく、特定の時間に再生を再開できます。seekToTime

      の準備のためseekWithoutAds:completionHandler:autoPlayを設定するときに無効にしますBCOVPlaybackController

      を使用する前に、のステータスが Read-to-play に変わるのを待っていることをお勧めしますAVPlayerItemAVPlayerItemしたがって、seekWithoutAds:completionHandler:の中にkBCOVPlaybackSessionLifecycleEventReadyのハンドラーplaybackController:playbackSession:didReceiveLifecycleEventあなたの方法BCOVPlaybackControllerDelegate

      広告なしのシークについて詳しくは、以下をご覧ください。


    ページの最終更新日21 May 2021