Aperçu
La reprise inter-appareils permet aux spectateurs de commencer à regarder une vidéo sur un appareil et de la reprendre ultérieurement là où ils l'ont laissée, sur le même appareil ou sur un appareil différent.
Disons que quelqu'un commence à regarder une vidéo sur son appareil mobile. Plus tard, ils peuvent continuer à regarder la même vidéo avec un lecteur sur leur navigateur Web. La lecture se poursuivra là où elle s'était arrêtée, pour ne rien manquer.
Si vous n'êtes pas familier avec cette fonctionnalité, reportez-vous à l' aperçu : CV multi-appareils document.
Exigences
Les conditions suivantes sont requises pour le CV multi-appareils avec les kits SDK natifs Brightcove :
Version du SDK natif Brightcove
- SDK natif pour Android 6.13.1+
- SDK natif pour iOS 6.0.1+, pour Pulse 6.7.5+, pour SSAI 6.7.7+
Version du système d'exploitation de l'appareil
- Android 6.0+
- iOS 11.0+
Configuration
Cette fonctionnalité est disponible pour toute personne disposant d'un compte Brightcove Video Cloud.
Pour commencer, procédez comme suit
- Contactez votre responsable de compte pour activer votre compte pour le CV multi-appareils
- Assurez-vous que les vidéos que vous utilisez sont ingérées pour la diffusion dynamique
Implémentation d'un CV multi-appareils
Pour implémenter un CV multiappareil, procédez comme suit :
-
Définir l'identifiant utilisateur pour les analyses Brightcove
Même si les données de la visionneuse sont envoyées automatiquement à Brightcove Analytics, vous devez définir l'identifiant de l'utilisateur.
Vous pouvez utiliser une passerelle d'authentification ou une solution de gestion des identités pour garder une trace des téléspectateurs. Utilisez cet ID de visionneuse comme identifiant d'utilisateur à transmettre à Brightcove Analytics.
-
Obtenez la position de lecture du spectateur à partir de l'API Cross-Device Resume (XDR)
- Reprendre la lecture
Implémentation Android
Pour le SDK natif pour Android, procédez comme suit :
-
Définissez l'identifiant utilisateur pour les analyses Brightcove.
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);
-
Obtenez la position de lecture du spectateur à partir de l'API Cross-Device Resume (XDR).
Pour plus de détails, voir les points suivants :
-
Reprendre la lecture.
Une fois que vous avez obtenu la position de lecture de la visionneuse à partir de l'API XDR, vous pouvez reprendre la lecture à partir de ce point. Réglez la position de la tête de lecture à l'aide du
brightcoveVideoView.seekTo()
méthode.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); } });
Implémentation iOS
Pour le SDK natif pour iOS, procédez comme suit :
-
Définissez l'identifiant utilisateur pour les analyses Brightcove.
@try { [BCOVGlobalConfiguration.sharedConfig setValue:@{ @"privateUser": self.viewer id, @"privateApplication": @"application id" } forKey:@"privateSessionAnalytics"]; } @catch (NSException *e) { NSLog(@"%@", e.description); }
-
Obtenez la position de lecture du spectateur à partir de l'API Cross-Device Resume (XDR).
Pour plus de détails, voir les points suivants :
-
Reprendre la lecture.
Une fois que vous avez obtenu la position de lecture de la visionneuse à partir de l'API XDR, vous pouvez reprendre la lecture à partir de ce point. Définissez la position de la tête de lecture à l'aide de la méthode suivante :
-[BCOVPlaybackController seekWithoutAds:(CMTime)seekToTime completionHandler:(void (^)(BOOL finished))completion]
Cela vous permet de reprendre la lecture à une heure précise sans forcer le spectateur à regarder les publicités programmées avant
seekToTime
.En prévision de
seekWithoutAds:completionHandler:
, désactivez-leautoPlay
lors de la configuration duBCOVPlaybackController
.Apple recommande d'attendre le statut d'un
AVPlayerItem
passer en mode prêt-à-jouer avant d'utiliser leAVPlayerItem
. Par conséquent, appelezseekWithoutAds:completionHandler:
dans lekBCOVPlaybackSessionLifecycleEventReady
gestionnaire de laplaybackController:playbackSession:didReceiveLifecycleEvent
méthode de votreBCOVPlaybackControllerDelegate
.Pour plus d'informations sur la recherche sans publicité, consultez les sections suivantes :
- IMA
- Roue libre
- Pulse implémente la recherche sans publicité de la même manière que IMA ou FreeWheel
- SSAI