Resumen
Brightcove Native SDK para Android está disponible en una nueva versión principal que trae importantes cambios de arquitectura y mejoras de reproducción, que incluyen:
- Compatibilidad con Android 13
- Compatibilidad con contenido de solo audio
- Notificación de estilo multimedia con controles de reproducción personalizables desde el tono de notificación y la pantalla de bloqueo
- Compatibilidad con un servicio de primer plano continuo para reproducción continua
- Carga mejorada de listas de reproducción y almacenamiento previo en búfer para una experiencia de usuario final más fluida
Contenido de solo audio
Brightcove Native SDK para Android admite reproducción de solo audio y controles de reproducción enriquecidos. La reproducción de audio continuará incluso si la aplicación host está en segundo plano, lo que le brinda al usuario final más control sobre su experiencia auditiva. La compatibilidad con la reproducción de audio se ha integrado con el SDK nativo actual para las API de Android para garantizar la compatibilidad con versiones anteriores de todas las funciones de Brightcove.
Para obtener detalles sobre la implementación, consulte el documento Solo audio con los SDK nativos .
cambios SDK
Con esta versión de Native SDK para Android, se agregaron las siguientes clases para admitir la integración continua con la reproducción en segundo plano, ExoPlayer y notificaciones de estilo multimedia:
MediaPlayback<Player>
BrightcoveNotification
MediaPlaybackService
Reproducción multimedia< Jugador>
Con los cambios en Native SDK para Android versión 8.0.0, Brightcove ha desacoplado la lógica empresarial de reproducción de la View
y Activity
. Esta lógica empresarial vive ahora en el nuevo MediaPlayback
clase, permitiendo que los medios persistan más allá de la Activity
ciclo de vida usando un ForegroundService
. El estado de reproducción se comparte en la notificación y su Vista correspondiente (cuando la aplicación está en primer plano).
Brightcove ha realizado mejoras significativas en la utilización de la compatibilidad con listas de reproducción internas de ExoPlayer. Anteriormente, se creaba una nueva instancia de ExoPlayer para cada elemento multimedia cargado en el SDK.
Ahora, la reproducción de medios mejora el almacenamiento previo en búfer del MediaSource
para ExoPlayer. Esto mejora el rendimiento y emplea ExoPlayer Player.Listener
para emitir estados de reproducción importantes.
La compatibilidad con la reproducción en primer plano y en segundo plano fusionará una FOREGROUND_SERVICE
permiso para su archivo AndroidManifest durante el proceso de creación de su aplicación. Este permiso es un requisito con SDK v8.0.0.
BrightcoveNotificación
Los usuarios pueden interactuar con el reproductor desde la notificación y la pantalla de bloqueo mediante los botones de acción. De forma predeterminada, la notificación incluye botones de acción de reproducción, pausa, siguiente y anterior.
Puede personalizar los botones de acción recuperando la instancia de notificación y configurando 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);
La siguiente tabla muestra los valores predeterminados y las descripciones de los botones de acción:
Nombre del método | Valor predeterminado | Descripción |
---|---|---|
usePlayPauseActions |
True |
Establece si se utilizan las acciones de reproducción y pausa |
useRewindAction |
True |
Establece si se utiliza la acción de rebobinado |
useRewindActionInCompatView |
False |
Si useRewindAction es verdadero, establece si la acción de rebobinado también se usa en la vista compacta (incluida la notificación de la pantalla de bloqueo); más no hace nada |
useFastForwardAction |
True |
Establece si se utiliza la acción de avance rápido |
useFastForwardActionInCompactView |
False |
Si useFastForwardAction es verdadero, establece si la acción de avance rápido también se usa en la vista compacta (incluida la notificación de la pantalla de bloqueo); más no hace nada |
usePreviousAction |
True |
Si se utiliza la acción anterior |
usePrevioiusActionInCompatMode |
False |
Si usePreviousAction es verdadero, establece si la acción anterior también se usa en la vista compacta (incluida la notificación de la pantalla de bloqueo); más no hace nada |
useNextAction |
True |
Si se usa la siguiente acción |
useNextActionInCompactView |
False |
Si useNextAction es verdadero, establece si la siguiente acción también se usa en la vista compacta (incluida la notificación de la pantalla de bloqueo); más no hace nada |
useStopAction |
False |
Establece si se utiliza la acción de parada |
Metadatos de notificación
De forma predeterminada, la notificación utiliza los metadatos del recurso y crea un mensaje implícito PendingIntent
para recrear tu actividad. Si necesita más control sobre los metadatos que se muestran en la notificación, puede implementar un 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
Native SDK para Android admite notificaciones diseñadas para la reproducción de medios. El comportamiento predeterminado del reproductor al reproducir un activo de audio es iniciar un nuevo ForegroundService con una notificación de reproducción en curso con controles de medios. Los controles multimedia se muestran debajo del panel de Configuración rápida y en la pantalla de bloqueo:
Los controles multimedia se encuentran en la pantalla de bloqueo y debajo del panel de Configuración rápida:
La notificación permite a los usuarios ver y controlar la reproducción cuando la aplicación host está en segundo plano. El SDK nativo maneja automáticamente:
- Cargando carátulas y metadatos del álbum
- Botones de acción (reproducir/pausar, siguiente, anterior, avance rápido, rebobinar y detener)
- Eventos del ciclo de vida de la actividad
Puede personalizar el estilo de notificación y los controles de medios usando el PlaybackNotification.Config
clase.