Étape par étape : Application vidéo simple utilisant le SDK natif pour Android
Dans cette rubrique, vous allez utiliser Android Studio et le SDK Brightcove Player pour Android pour créer une application qui lit une vidéo à partir d'un compte Brightcove Video Cloud, ainsi que des vidéos d'une playlist Brightcove Video Cloud.
Aperçu
Après avoir terminé ce Quick Start, vous devriez être capable de :
Créez un projet et ajoutez le Brightcove Player SDK pour Android à l'aide de Gradle.
Modifiez la mise en page pour inclure un BrightcoveExoPlayerVideoView.
Ajouter au onCreate() méthode pour lire des vidéos. provenant de différentes sources.
Audience
Les développeurs qui utilisent Android Studio pour le développement et qui souhaitent utiliser le Brightcove Player SDK pour Android dans une application Android.
Conditions préalables
Une connaissance minimale du développement d'applications Java et Android.
Sois prêt
Préparez-vous pour le développement en installant Android Studio
Suivez les instructions d'Android Studio pour installer l'application.
Créer un projet
Créez un projet dans Android Studio, puis connectez-vous au SDK du lecteur à l'aide de Gradle.
Créer un projet dans Android Studio
Ouvrez Android Studio.
Dans la boîte de dialogue Bienvenue dans Android Studio , sélectionnez Nouveau projet.
Sélectionnez Nouveau projet
Dans la boîte de dialogue Nouveau projet , sélectionnez Activité vide et cliquez sur Suivant.
Choisissez une activité vide
Fournissez des valeurs pour le nom, le nom du paquet, l' emplacement de sauvegarde, la langue et le SDK minimum. Dans ce démarrage rapide, les valeurs indiquées ci-dessous sont utilisées :
Nouveau projet
Cliquez sur Terminer.
Android Studio fonctionnera pendant un certain temps et affichera éventuellement l'état initial du projet.
Projet d'atelier
Utilisez Gradle pour créer un lien vers le Brightcove Player SDK pour Android
Étant donné que Gradle est intégré à Android Studio, vous l'utiliserez pour ajouter le SDK natif pour Android à votre projet.
Dans la vue Android , vous trouverez les fichiers de votre projet.
Élargir la Gradle Scripts groupe et ouvrez le settings.gradle déposer.
Construire le fichier gradle
Dans la repositories section, ajoutez une entrée pour le référentiel Brightcove Maven.
Dans le Gradle Scripts groupe, ouvrez le build.gradle fichier associé au module actuel dans votre projet PlayVideos.
Construire le fichier gradle
Dans le build.gradle fichier, recherchez la dependencies section. Inclure la dernière version du SDK natif pour Android. Remplacer la valeur 8.0.0 ci-dessous avec la dernière version du SDK, qui se trouve dans le Aperçu: Kit de développement logiciel natif Brightcove pour Android document.
L'utilisation d'une version de dépendance dynamique avec le caractère '+' est déconseillée dans la communauté Gradle. L'utilisation du contrôle de version dynamique présente un risque important pour votre processus de génération, car les nouvelles API peuvent devenir de manière inattendue incompatibles avec le code source de votre application.
Dans le Gradle Scripts groupe, ouvrez le gradle.properties déposer.
Propriétés de Gradle
Dans gradle.properties, modifiez le properties avec le code ci-dessous. Des exemples de code peuvent être trouvés dans le dépôt android-player-samples .
Synchronisez le projet pour récupérer les modifications apportées au fichier Gradle.
Coder l'application
Ensuite, vous allez écrire le code pour mettre en page l'application, créer la liste de vidéos et lire les vidéos
Définir la mise en page de l'application
Même avec l'activité vide, vous obtiendrez un simple TextView disposition. Remplacez-le par le BrightcoveExoPlayerVideoView , qui définit la vue pour le joueur.
Ouvrez le fichier app/res/layout/activity_main.xml et cliquez sur Code.
Fichier XML de mise en page
Supprimer l'existant TextView élément et ajoutez un BrightcoveExoPlayerVideoView section afin que le XML résultant apparaisse comme suit. Notez pour une utilisation ultérieure que id la vue est nommée brightcove_video_view.
Synchronisez le projet pour le reconstruire et récupérer ces modifications.
Créer la vue et lire une vidéo
Retour au MainActivity.java déposer.
Fichier MainActivity
Pour le MainActivity classe, étendre la BrightcovePlayer classer. Cela fournit une gestion du cycle de vie par défaut pour votre application.
public class MainActivity extends BrightcovePlayer {
Lorsque vous commencez à taper BrightcovePlayer, vous devriez voir apparaître des options à sélectionner. Double-cliquez sur l' BrightcovePlayer option pour ajouter une import déclaration.
Classe BrightcovePlayer
Localisez le onCreate() fonction. Avant d'entrer dans la superclasse, attribuez brightcoveVideoView les éléments suivants :
Créer une instance de BrightcoveExoPlayerVideoView et l'associer à la mise en page. Dans la plupart des cas, vous utiliserez la vue exoplayer. Pour plus de détails, consultez le Choisir une vue vidéo document.
Lors de l'extension du BrightcovePlayer, nous devons l'attribuer brightcoveVideoView avant d'entrer dans la superclasse. Cela permet de gérer le cycle de vie des lecteurs vidéo.
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);
Lorsque vous collez le code en surbrillance ci-dessus, appuyez sur la touche choix + retour touches pour ajouter le import déclaration pour le BrightcoveExoPlayerVideoView classe.
Ensuite, vous devez envoyer votre ID de compte de joueur Brightcove à Brightcove en utilisant l'analyse setAccount() méthode.
Optionnel: Si vous remplacez le BrightcoveExoPlayerVideoView classe ou n'utilisez pas le lecteur et le catalogue Brightcove, vous devez envoyer votre ID d'éditeur Video Cloud à Video Cloud Analytics. Vous pouvez le faire en utilisant l'analyse setAccount() méthode. Cela vous permet d'afficher les données de cette application dans Video Cloud Analytics.
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();
}
}
Exécutez ou déboguez l'application pour voir la lecture de la vidéo.
Obtenir et lire une vidéo
Dans cette section, vous utiliserez le Catalog class pour récupérer une seule vidéo du serveur Video Cloud, puis la lire.
Les com.brightcove.player.edge.Catalog La classe fournit des méthodes asynchrones pour récupérer des vidéos et des listes de lecture à partir du API de lecture Brightcove. Il s'agit de l'API la plus récente et recommandée pour récupérer le contenu de votre bibliothèque Video Cloud.
Supprimer le code inutile
Certains codes de l'application précédente ne sont plus nécessaires. Dans la onCreate() méthode, supprimez tout le code après avoir saisi la superclasse.
Confirmer votre onCreate() méthode apparaît comme suit :
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);
}
}
Récupérer une vidéo du catalogue
À partir de votre compte Video Cloud Studio, collectez les informations suivantes :
identifiant de compte
ID vidéo
Clé de stratégie
Définissez vos valeurs personnalisées dans votre projet. Ouvrez le res/values/strings.xml fichier et mettez-le à jour avec vos valeurs :
<?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>
Revenez au MainActivity.java fichier et récupérez l'émetteur d'événements depuis le SDK.
// Get the event emitter from the SDK
EventEmitter eventEmitter = brightcoveVideoView.getEventEmitter();
Créez une requête de catalogue pour récupérer une vidéo auprès du service Brightcove Edge, en utilisant les valeurs définies pour l'ID de compte et la clé de stratégie à l'étape précédente.
// 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();
Utilisez le catalogue findVideoByID() méthode avec votre ID vidéo et un VideoListener pour le rappel.
Dans le onVideo() méthode, ajoutez la vidéo à brightcoveVideoView , puis lancez la vidéo.
// 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();
}
});
Le code complet de votre MainActivity la classe devrait ressembler à ceci :
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();
}
});
}
}
Exécutez l'application pour confirmer la lecture de la vidéo.
Obtenir et lire une liste de lecture
Dans cette section, vous utiliserez le Catalog class pour récupérer une liste de lecture depuis le serveur Video Cloud, puis lire les vidéos de la liste de lecture.
Les com.brightcove.player.edge.Catalog La classe fournit des méthodes asynchrones pour récupérer des vidéos et des listes de lecture à partir du API de lecture Brightcove. Il s'agit de l'API la plus récente et recommandée pour récupérer le contenu de votre bibliothèque Video Cloud.
Supprimer le code inutile
Certains codes de l'application précédente ne sont plus nécessaires. Supprimer l'appel au catalogue findVideoByID() méthode et les VideoListener fonction de rappel anonyme.
// 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();
}
});
Récupérer une liste de lecture du catalogue
L'instance de catalogue existante fonctionnera pour récupérer une liste de lecture, donc aucun changement n'est nécessaire à ces lignes de code :
// 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();
Dans Video Cloud Studio Médias module, sélectionnez une liste de lecture et copiez le Identifiant de la liste de lecture.
Ouvrez le res/values/strings.xml fichier et ajoutez une entrée pour votre identifiant de playlist :
<?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>
Utilisez le catalogue findPlaylistByID() méthode utilisant votre identifiant de liste de lecture et un PlaylistListener pour le rappel.
Dans le onPlaylist() méthode, récupérer les vidéos de la liste de lecture, ajouter toutes les vidéos à brightcoveVideoView , puis lancez la première vidéo.
// 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();
}
});
Le code complet de votre MainActivity la classe devrait ressembler à ceci :
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();
}
});
}
}
Exécutez l'application pour confirmer plusieurs vidéos de la lecture de la liste de lecture.
Vous avez terminé! Merci d'avoir travaillé avec le démarrage rapide du SDK Android.