Aperçu
Le SDK natif de Brightcove pour Android est disponible dans une nouvelle version majeure qui apporte d'importants changements d'architecture et des améliorations de lecture, notamment :
- Compatibilité Android 13
- Prise en charge du contenu audio uniquement
- Notification de type média avec commandes de lecture personnalisables à partir de l'écran de notification et de l'écran de verrouillage
- Prise en charge d'un service d'avant-plan continu pour une lecture en continu
- Amélioration du chargement des listes de lecture et de la mise en mémoire tampon des médias pour une expérience plus fluide pour l'utilisateur final
Contenu audio uniquement
Le SDK natif de Brightcove pour Android prend en charge la lecture audio uniquement et les contrôles de lecture riches. La lecture audio se poursuit même si l'application hôte est en arrière-plan, ce qui permet à l'utilisateur final de mieux contrôler son expérience d'écoute. La prise en charge de la lecture audio a été intégrée au SDK natif actuel pour les API Android afin d'assurer la rétrocompatibilité avec toutes les fonctionnalités de Brightcove.
Pour plus de détails sur la mise en œuvre, voir le document Audio Only with the Native SDKs .
Changements dans le SDK
Avec cette version du SDK natif pour Android, les classes suivantes ont été ajoutées pour prendre en charge l'intégration continue avec la lecture en arrière-plan, ExoPlayer et les notifications de style média :
MediaPlayback<Player>
BrightcoveNotification
MediaPlaybackService
MediaPlayback<Lecteur>
Avec les modifications apportées au SDK natif pour Android version 8.0.0, Brightcove a complètement découplé la View
logique métier de lecture Activity
. Cette logique métier appartient désormais à une nouvelle MediaPlayback
classe, permettant aux médias de persister au-delà du Activity
cycle de vie en utilisant un ForegroundService
. L'état de la lecture est partagé entre la notification et la vue correspondante (lorsque l'application est au premier plan).
Brightcove a considérablement amélioré l'utilisation de la prise en charge des listes de lecture internes d'ExoPlayer. Auparavant, une nouvelle instance d'ExoPlayer était créée pour chaque élément multimédia chargé dans le SDK.
Désormais, la lecture multimédia améliore la pré-mise en mémoire tampon MediaSource
d'ExoPlayer. Cela améliore les performances et utilise ExoPlayer Player.Listener
pour émettre des états de lecture importants.
La prise en charge de la lecture au premier plan et en arrière-plan fusionnera un FOREGROUND_SERVICE
l'autorisation à votre AndroidManifest fichier pendant le processus de création de votre application. Cette autorisation est obligatoire avec le SDK v8.0.0.
Avis de Brightcove
Les utilisateurs peuvent interagir avec le lecteur à partir de l'écran de notification et de l'écran de verrouillage à l'aide de boutons d'action. Par défaut, la notification comprend des boutons de lecture, de pause, d'action suivante et précédente.
Vous pouvez personnaliser les boutons d'action en récupérant l'instance de notification et en définissant un config
.
BrightcoveExoPlayerVideoView player = findViewById(R.id.player_view);
PlaybackNotification.Config config = new PlaybackNotification.Config(this)
.setUsePlayPauseActions(true)
.setUseNextAction(false)
.setUsePreviousAction(false)
.setUseFastForwardAction(true)
.setUseRewindAction(true);
player.getPlayback().getNotification().setConfig(config);
Le tableau suivant présente les valeurs par défaut et les descriptions des boutons d'action :
Nom de la méthode | Valeur par défaut | Description |
---|---|---|
usePlayPauseActions |
True |
Définit si les actions de lecture et de pause sont utilisées |
useRewindAction |
True |
Définit si l'action de rembobinage est utilisée |
useRewindActionInCompatView |
False |
Si useRewindAction c'est vrai, définit si l'action de retour en arrière est également utilisée en mode compact (y compris la notification de l'écran de verrouillage) ; Sinon, rien ne fait |
useFastForwardAction |
True |
Définit si l'action d'avance rapide est utilisée |
useFastForwardActionInCompactView |
False |
Si useFastForwardAction c'est vrai, définit si l'action d'avance rapide est également utilisée en mode compact (y compris la notification sur l'écran de verrouillage) ; Sinon, rien ne fait |
usePreviousAction |
True |
Si l'action précédente est utilisée |
usePrevioiusActionInCompatMode |
False |
Si usePreviousAction c'est vrai, définit si l'action précédente est également utilisée en mode compact (y compris la notification de l'écran de verrouillage) ; Sinon, rien ne fait |
useNextAction |
True |
Si l'action suivante est utilisée |
useNextActionInCompactView |
False |
Si useNextAction c'est vrai, définit si l'action suivante est également utilisée en mode compact (y compris la notification de l'écran de verrouillage) ; Sinon, rien ne fait |
useStopAction |
False |
Définit si l'action d'arrêt est utilisée |
Métadonnées de notification
Par défaut, la notification utilise les métadonnées de la ressource et crée une implication PendingIntent
pour recréer votre activité. Si vous avez besoin d'un contrôle supplémentaire sur les métadonnées affichées dans la notification, vous pouvez implémenter une solution MediaDescriptionAdapter
:
new PlaybackNotification.Config(this)
.setAdapter(new PlaybackNotification.MediaDescriptionAdapter() {
@Override
public CharSequence getCurrentContentTitle(
MediaPlayback playback
) {
// TODO: return the current content title
}
@Override
public Bitmap getCurrentLargeIcon(
MediaPlayback playback,
BitmapCallback callback
) {
// TODO: return the bitmap for currently playing item
}
@Nullable
@Override
public PendingIntent createCurrentContentIntent(
MediaPlayback<?> playback
) {
// TODO: return your custom PendingIntent
}
@Nullable
@Override
public CharSequence getCurrentContentText(
MediaPlayback<?> playback
) {
// TODO: return the current content text
}
@Nullable
@Override
public CharSequence getCurrentSubText(
MediaPlayback<?> playback
) {
// TODO: return the current sub-text.
}
}
);
MediaPlaybackService
Le SDK natif pour Android prend en charge les notifications conçues pour la lecture de médias. Le comportement par défaut du lecteur lors de la lecture d'une ressource audio est de démarrer un nouveau ForegroundService avec une notification de lecture en cours avec des contrôles média. Les commandes multimédia sont affichées sous le panneau des réglages rapides et sur l'écran de verrouillage :
Les commandes multimédia se trouvent sur l'écran de verrouillage et sous le panneau des réglages rapides :
La notification permet aux utilisateurs de visualiser et de contrôler la lecture lorsque l'application hôte est en arrière-plan. Le SDK natif s'en charge automatiquement :
- Chargement des pochettes d'album et des métadonnées
- Boutons d'action (lecture/pause, suivant, précédent, avance rapide, retour en arrière et arrêt)
- Événements du cycle de vie de l'activité
Vous pouvez personnaliser le style de notification et les contrôles multimédia à l'aide de la PlaybackNotification.Config
classe.