El SDK nativo para la versión 8.0.0 de Android

En este tema, aprenderá sobre la nueva funcionalidad proporcionada por Brightcove Native SDK para la versión 8.0.0 de Android.

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).

Reproducción de medios
Reproducción de medios

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:

Controles multimedia
Controles multimedia

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.