Paso a paso: Aplicación de video simple que usa el SDK nativo para Android
En este tema, utilizará Android Studio y Brightcove Player SDK para Android para crear una aplicación que reproduzca un video de una cuenta de Brightcove Video Cloud, así como videos de una lista de reproducción de Brightcove Video Cloud.
Resumen
Después de completar este inicio rápido, debería poder:
Cree un proyecto y agregue Brightcove Player SDK para Android con Gradle.
Modifique el diseño para incluir un BrightcoveExoPlayerVideoView.
Agregar al onCreate() método para reproducir videos. de diferentes fuentes.
Audiencia
Desarrolladores que usan Android Studio para el desarrollo y están interesados en usar Brightcove Player SDK para Android en una aplicación de Android.
Requisitos previos
Un conocimiento mínimo del desarrollo de aplicaciones Java y Android.
Prepararse
Prepárese para el desarrollo instalando Android Studio
Siga las instrucciones de Android Studio para instalar la aplicación.
Crea un proyecto
Cree un proyecto en Android Studio y luego vincúlelo al SDK del reproductor con Gradle.
Crea un proyecto en Android Studio
Abra Android Studio.
En el cuadro de diálogo Bienvenido a Android Studio , seleccione Nuevo proyecto .
Seleccionar nuevo proyecto
En el cuadro de diálogo Nuevo proyecto , seleccione Actividad vacía y haga clic en Siguiente .
Elija actividad vacía
Proporcione valores para el Nombre , Nombre del paquete , Ubicación para guardar , Idioma y SDK mínimo . En este inicio rápido se utilizan los valores que se muestran a continuación:
Nuevo proyecto
Haz clic en Finalizar.
Android Studio funcionará por un tiempo y eventualmente mostrará el estado inicial del proyecto.
Proyecto de estudio
Utilice Gradle para vincularse con Brightcove Player SDK para Android
Dado que Gradle está integrado con Android Studio, lo usará para agregar el SDK nativo para Android a su proyecto.
En la vista de Android , encontrará los archivos de su proyecto.
Expanda el grupo Gradle Scripts y abra el settings.gradle archivo.
Crear archivo gradle
En el repositories sección, agregue una entrada para el repositorio de Brightcove Maven.
En el grupo Gradle Scripts , abra el build.gradle archivo asociado con el módulo actual en su proyecto PlayVideos.
Crear archivo gradle
En el build.gradle archivo, busque el dependencies sección. Incluye la última versión de Native SDK para Android. Reemplazar el valor 8.0.0 a continuación con la última versión del SDK, que se puede encontrar en el Descripción general: SDK nativo de Brightcove para Android documento.
El uso de una versión de dependencia dinámica con el carácter '+' no se recomienda en la comunidad de Gradle. El uso de versiones dinámicas conlleva un riesgo significativo para su proceso de compilación, ya que las API más nuevas pueden volverse inesperadamente incompatibles con el código fuente de su aplicación.
En el grupo Gradle Scripts , abra el gradle.properties archivo.
propiedades gradle
En gradle.properties , modificar el properties con el siguiente código. El código de muestra se puede encontrar en el repositorio android-player-samples .
Sincronice el proyecto para recoger los cambios del archivo Gradle.
Codifique la aplicación
A continuación, escribirá el código para diseñar la aplicación, crear la lista de videos y reproducir los videos.
Definir el diseño de la aplicación
Incluso con la actividad vacía, obtendrá una simple TextView diseño. Reemplace esto con el BrightcoveExoPlayerVideoView , que define la vista del jugador.
Abre el archivo app/res/layout/activity_main.xml y haga clic en Código .
Diseño de archivo XML
Eliminar el existente TextView elemento y agregue un BrightcoveExoPlayerVideoView sección para que el XML resultante aparezca de la siguiente manera. Tenga en cuenta para su uso posterior que el id de la vista se llama brightcove_video_view .
Abre el app/manifests/AndroidManifest.xml expediente.
Justo después del <application> bloque de código, pero por encima del final </manifest> etiqueta, inserte lo siguiente para habilitar el acceso a Internet.
Sincronice el proyecto para reconstruirlo y recoger estos cambios.
Crea la vista y reproduce un video
Volver a la MainActivity.java expediente.
Archivo de actividad principal
Para el MainActivity clase, extender el BrightcovePlayer clase. Esto proporciona una gestión del ciclo de vida predeterminada para su aplicación.
public class MainActivity extends BrightcovePlayer {
A medida que comienza a escribir BrightcovePlayer , deberías ver opciones para seleccionar. Haciendo doble clic en el BrightcovePlayer La opción agregará un import declaración.
BrightcovePlayer clase
Localizar el onCreate() función. Antes de entrar en la superclase, asigne el brightcoveVideoView como sigue:
Crea una instancia de BrightcoveExoPlayerVideoView y asociarlo con el diseño. En la mayoría de los casos, utilizará la vista exoplayer. Para obtener más detalles, consulte la Elegir una vista de video documento.
Al extender el BrightcovePlayer , debemos asignar el brightcoveVideoView antes de entrar en la superclase. Esto permite cierta gestión del ciclo de vida del reproductor de video.
public class MainActivity extends BrightcovePlayer {
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
brightcoveVideoView = (BrightcoveExoPlayerVideoView) findViewById(R.id.brightcove_video_view);
super.onCreate(savedInstanceState);
Cuando pegue el código resaltado arriba, presione las teclas de opción + retorno para agregar el import declaración para el BrightcoveExoPlayerVideoView clase.
A continuación, debe enviar su ID de cuenta de jugador de Brightcove a Brightcove mediante el análisis setAccount() método.
Opcional: Si anula el BrightcoveExoPlayerVideoView class o no utilice el reproductor y el catálogo de Brightcove, debe enviar su ID de editor de Video Cloud a Video Cloud Analytics. Puede hacer esto usando el análisis setAccount() método. Esto le permite ver los datos de esta aplicación en Video Cloud Analytics.
Cree un objeto de video a partir de su video alojado en un servidor remoto. Selecciona el DeliveryType para que coincida con el tipo de video que tienes.
Video video = Video.createVideo("https://sdks.support.brightcove.com/assets/videos/hls/greatblueheron/greatblueheron.m3u8",
DeliveryType.HLS);
Cargue una imagen remota para usarla como imagen de póster antes de que comience la reproducción de video.
El código debería tener un aspecto similar a este:
package com.brightcove.playvideos;
import android.os.Bundle;
import com.brightcove.player.model.DeliveryType;
import com.brightcove.player.model.Video;
import com.brightcove.player.view.BrightcoveExoPlayerVideoView;
import com.brightcove.player.view.BrightcovePlayer;
import java.net.URISyntaxException;
public class MainActivity extends BrightcovePlayer {
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
// Create the video view
brightcoveVideoView = (BrightcoveExoPlayerVideoView) findViewById(R.id.brightcove_video_view);
super.onCreate(savedInstanceState);
// Optional: For Brightcove Player customers to register their apps
Analytics analytics = brightcoveVideoView.getAnalytics();
analytics.setAccount("your account Id");
// Define a video from a remote server
Video video = Video.createVideo("https://sdks.support.brightcove.com/assets/videos/hls/greatblueheron/greatblueheron.m3u8",
DeliveryType.HLS);
// Load a remote poster image
try {
java.net.URI myposterImage = new java.net.URI("https://sdks.support.brightcove.com/assets/images/general/Great-Blue-Heron.png");
video.getProperties().put(Video.Fields.STILL_IMAGE_URI, myposterImage);
} catch (URISyntaxException e) {
e.printStackTrace();
}
// Add video to the view
brightcoveVideoView.add(video);
// Start video playback
brightcoveVideoView.start();
}
}
Ejecute o depure la aplicación para ver la reproducción de video.
Obtener y reproducir un video
En esta sección, utilizará el Catalog class para recuperar un solo video del servidor de Video Cloud y luego reproducirlo.
La com.brightcove.player.edge.Catalog La clase proporciona métodos asincrónicos para recuperar videos y listas de reproducción de la API de reproducción de Brightcove. Esta es la API más reciente y recomendada para recuperar contenido de su biblioteca de Video Cloud.
Eliminar el código innecesario
Ya no se necesita algo de código de la aplicación anterior. En el onCreate() método, elimine todo el código después de ingresar a la superclase.
Confirmar tu onCreate() El método aparece de la siguiente manera:
public class MainActivity extends BrightcovePlayer {
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
// Create the video view
brightcoveVideoView = (BrightcoveExoPlayerVideoView) findViewById(R.id.brightcove_video_view);
super.onCreate(savedInstanceState);
}
}
Recuperar un video del Catálogo
Desde su cuenta de Video Cloud Studio, recopile la siguiente información:
ID de la cuenta
ID de vídeo
Clave de política
Defina sus valores personalizados en su proyecto. Abre el res/values/strings.xml archivo y actualícelo con sus valores:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Application name -->
<string name="app_name">PlayVideos</string>
<!-- A sample Brightcove Edge Account ID -->
<string name="account">your account id</string>
<!-- A sample Brightcove Edge Policy Key -->
<string name="policy">your policy key</string>
<!-- A sample Brightcove Video ID -->
<string name="videoId">your video id</string>
</resources>
Volver a la MainActivity.java y obtenga el emisor de eventos del SDK.
// Get the event emitter from the SDK
EventEmitter eventEmitter = brightcoveVideoView.getEventEmitter();
Cree una solicitud de catálogo para obtener un video del servicio Brightcove Edge, usando sus valores definidos para ID de cuenta y Clave de política del paso anterior.
// Create a catalog request to fetch a video
String account = getString(R.string.account);
Catalog catalog = new Catalog.Builder(eventEmitter, account)
.setBaseURL(Catalog.DEFAULT_EDGE_BASE_URL)
.setPolicy(getString(R.string.policy))
.build();
Utilice el catálogo findVideoByID() método con su ID de video y un VideoListener para la devolución de llamada.
En el onVideo() método, agregue el video a brightcoveVideoView , luego inicie el video.
// Get the video by ID
catalog.findVideoByID(getString(R.string.videoId), new VideoListener() {
@Override
public void onVideo(Video video) {
// Add video to the view
brightcoveVideoView.add(video);
// Start video playback
brightcoveVideoView.start();
}
});
El código completo para su MainActivity la clase debería ser similar a esto:
public class MainActivity extends BrightcovePlayer {
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
// Create the video view
brightcoveVideoView = (BrightcoveExoPlayerVideoView) findViewById(R.id.brightcove_video_view);
super.onCreate(savedInstanceState);
// Get the event emitter from the SDK
EventEmitter eventEmitter = brightcoveVideoView.getEventEmitter();
// Create a catalog request to fetch a video
String account = getString(R.string.account);
Catalog catalog = new Catalog.Builder(eventEmitter, account)
.setBaseURL(Catalog.DEFAULT_EDGE_BASE_URL)
.setPolicy(getString(R.string.policy))
.build();
// Get the video by ID
catalog.findVideoByID(getString(R.string.videoId), new VideoListener() {
@Override
public void onVideo(Video video) {
// Add video to the view
brightcoveVideoView.add(video);
// Start video playback
brightcoveVideoView.start();
}
});
}
}
Ejecute la aplicación para confirmar que se reproduce el video.
Obtén y reproduce una lista de reproducción
En esta sección, utilizará el Catalog class para recuperar una lista de reproducción del servidor de Video Cloud y luego reproducir los videos en la lista de reproducción.
La com.brightcove.player.edge.Catalog La clase proporciona métodos asincrónicos para recuperar videos y listas de reproducción de la API de reproducción de Brightcove. Esta es la API más reciente y recomendada para recuperar contenido de su biblioteca de Video Cloud.
Eliminar el código innecesario
Ya no se necesita algo de código de la aplicación anterior. Eliminar la llamada al catálogo findVideoByID() método, y el asociado VideoListener función de devolución de llamada anónima.
// Get the video by ID
catalog.findVideoByID(getString(R.string.videoId), new VideoListener() {
@Override
public void onVideo(Video video) {
// Add video to the view
brightcoveVideoView.add(video);
// Start video playback
brightcoveVideoView.start();
}
});
Recuperar una lista de reproducción del catálogo
La instancia de catálogo existente funcionará para recuperar una lista de reproducción, por lo que no son necesarios cambios a estas líneas de código:
// Get the event emitter from the SDK
EventEmitter eventEmitter = brightcoveVideoView.getEventEmitter();
// Create a catalog request to fetch a video
String account = getString(R.string.account);
Catalog catalog = new Catalog.Builder(eventEmitter, account)
.setBaseURL(Catalog.DEFAULT_EDGE_BASE_URL)
.setPolicy(getString(R.string.policy))
.build();
En Video Cloud Studio's Medios de comunicación módulo, seleccione una lista de reproducción y copie el ID de lista de reproducción.
Abre el res/values/strings.xml archivo y agregue una entrada para su ID de lista de reproducción:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Application name -->
<string name="app_name">PlayVideos</string>
<!-- A sample Brightcove Edge Account ID -->
<string name="account">your account id</string>
<!-- A sample Brightcove Edge Policy Key -->
<string name="policy">your policy key</string>
<!-- A sample Brightcove Playlist ID -->
<string name="playlistId">your playlist id</string>
</resources>
Utilice el catálogo findPlaylistByID() método usando su ID de lista de reproducción y un PlaylistListener para la devolución de llamada.
En el onPlaylist() método, recupere los videos de la lista de reproducción, agregue todos los videos a brightcoveVideoView , luego inicie el primer video.
// Get the playlist by ID
String playlist = getString(R.string.playlistId);
catalog.findPlaylistByID(playlist, new PlaylistListener() {
@Override
public void onPlaylist(Playlist playlist) {
// Add playlist to the view
brightcoveVideoView.addAll(playlist.getVideos());
// Start playback
brightcoveVideoView.start();
}
});
El código completo para su MainActivity la clase debería ser similar a esto:
public class MainActivity extends BrightcovePlayer {
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
// Create the video view
brightcoveVideoView = (BrightcoveExoPlayerVideoView) findViewById(R.id.brightcove_video_view);
super.onCreate(savedInstanceState);
// Get the event emitter from the SDK
EventEmitter eventEmitter = brightcoveVideoView.getEventEmitter();
// Create a catalog request to fetch a video
String account = getString(R.string.account);
Catalog catalog = new Catalog.Builder(eventEmitter, account)
.setBaseURL(Catalog.DEFAULT_EDGE_BASE_URL)
.setPolicy(getString(R.string.policy))
.build();
// Get the playlist by ID
String playlist = getString(R.string.playlistId);
catalog.findPlaylistByID(playlist, new PlaylistListener() {
@Override
public void onPlaylist(Playlist playlist) {
// Add playlist to the view
brightcoveVideoView.addAll(playlist.getVideos());
// Start playback
brightcoveVideoView.start();
}
});
}
}
Ejecute la aplicación para confirmar varios videos de la reproducción de la lista de reproducción.
¡Listo! Gracias por trabajar con el inicio rápido del SDK de Android.