Introduction
Lorsque vous récupérez des vidéos du catalogue Brightcove, le SDK doit décider quelle source lire. Ceci est mis en œuvre dans le DefaultSourceSelectionController et ExoPlayerSourceSelectionController Composants.
Processus de sélection par défaut
Le Brightcove Player SDK pour Android utilise un processus de sélection de source par défaut. Pour simplifier, nous allons nous concentrer sur la prise en charge par le SDK de l'API Brightcove Playback et de l'ExoPlayer de Google.
Le processus de sélection par défaut est défini comme suit :
-
Avec le Brightcove Native SDK pour Android 6.4+, la livraison HTTPS pour tous les types de sources est sélectionnée si disponible.
Les deux DefaultSourceSelectionController et ExoPlayerSourceSelectionController essayez de sélectionner la version HTTPS du
deliveryType
choisi. Si aucune source HTTPS n'existe, le contrôleur de sélection sélectionnera la première disponible. - Les BrightcoveExoPlayerVidéoVoir recherche la première source qui a un
deliveryType
de MPEG-DASH , et un profil qui n'est ni urne : hbbtv ni urne:dvb. Le SDK ne prend en charge la lecture avec aucun de ces profils DASH, et ils seront donc filtrés des sources. - Si ce qui précède n'est pas trouvé, la sélection de la source revient à la première source avec un
deliveryType
de HLS. - Si aucune source de ce type n'est trouvée, il revient à la source avec un
deliveryType
de MP4 et un débit le plus proche de 256 kBps.
Une fois la source trouvée, l'implémentation se poursuit comme suit :
- Si elle est trouvée, la source sélectionnée sera émise avec une réponse à la SÉLECTIONNER LA SOURCE un événement.
- Par défaut, le Contrôleur de lecture vidéo gère le SÉLECTIONNER LA SOURCE réponse, en émettant un SET_SOURCE un événement.
- Les Composant d'affichage vidéo ou une sous-classe gère le SET_SOURCE événement en chargeant l'URL dans le lecteur sous-jacent (ExoPlayer ou MediaPlayer).
- Lorsque la lecture commence, le lecteur sous-jacent est responsable de l'adaptation du débit avec le contenu HLS et DASH. Avec HLS, le lecteur sous-jacent démarre avec le premier débit indiqué dans le manifeste principal.
Lorsque vous utilisez les paramètres de transcodage par défaut, la première source HLS doit être la liste de lecture principale m3u8 qui pointe vers toutes vos sources individuelles (rendus).
Réglage des sources HLS
Il est possible de personnaliser la sélection de source au niveau de l'application, pour filtrer tous les types de diffusion indésirables avant que la politique de sélection de source par défaut du SDK ne soit invoquée. Pour ce faire, vous pouvez modifier les collections de sources qui sont définies dans l'objet Video à partir de la réponse JSON de l'API de lecture.
Cet exemple utilise VideoUtil.filterSourcesOnDeliveryType
pour inclure uniquement les sources HLS :
catalog.findVideoByReferenceID(videoReferenceId, new com.brightcove.player.edge.VideoListener() {
@Override
public void onVideo(Video video) {
VideoUtil.filterSourcesOnDeliveryType(video, DeliveryType.HLS);
brightcoveVideoView.add(video);
brightcoveVideoView.start();
}
});