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
- Téléchargez le Android Studio application.
- 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.
- Dans la boîte de dialogue Nouveau projet , sélectionnez Activité vide et cliquez sur Suivant.
-
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 :
- Cliquez sur Terminer.
-
Android Studio fonctionnera pendant un certain temps et affichera éventuellement l'état initial du projet.
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. - Dans la
repositories
section, ajoutez une entrée pour le référentiel Brightcove Maven.dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven { url 'https://repo.brightcove.com/releases' } } } rootProject.name = "PlayVideos" include ':app'
-
Dans le Gradle Scripts groupe, ouvrez le
build.gradle
fichier associé au module actuel dans votre projet PlayVideos. - Dans le
build.gradle
fichier, recherchez ladependencies
section. Inclure la dernière version du SDK natif pour Android. Remplacer la valeur8.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.dependencies { implementation 'androidx.appcompat:appcompat:1.4.1' implementation 'com.google.android.material:material:1.5.8' implementation 'androidx.constraintlayout:constraintlayout:2.1.3' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.8' implementation "com.brightcove.player:exoplayer2:8.0.0" }
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
Dansgradle.properties
déposer.gradle.properties
, modifiez leproperties
avec le code ci-dessous. Des exemples de code peuvent être trouvés dans le dépôt android-player-samples .android.enableJetifier=true android.useAndroidX=true anpVersion=8.0.0 org.gradle.jvmargs=-XX\:MaxPermSize\=512m
- 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. -
Supprimer l'existant
TextView
élément et ajoutez unBrightcoveExoPlayerVideoView
section afin que le XML résultant apparaisse comme suit. Notez pour une utilisation ultérieure queid
la vue est nomméebrightcove_video_view
.<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <com.brightcove.player.view.BrightcoveExoPlayerVideoView android:id="@+id/brightcove_video_view" android:layout_width="match_parent" android:layout_height="280dp" android:layout_gravity="center_horizontal|top"/> </androidx.constraintlayout.widget.ConstraintLayout>
Activer l'application pour utiliser Internet
- Ouvrez le
app/manifests/AndroidManifest.xml
déposer. -
Juste après le
<application>
bloc de code, mais au-dessus de la fin</manifest>
, insérez ce qui suit pour activer l'accès Internet.<uses-permission android:name="android.permission.INTERNET"/>
- 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. -
Pour le
MainActivity
classe, étendre laBrightcovePlayer
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 uneimport
déclaration. -
Localisez le
onCreate()
fonction. Avant d'entrer dans la superclasse, attribuezbrightcoveVideoView
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'attribuerbrightcoveVideoView
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 leBrightcoveExoPlayerVideoView
classe. -
-
Ensuite, vous devez envoyer votre ID de compte de joueur Brightcove à Brightcove en utilisant l'analyse
setAccount()
méthode.Analytics analytics = brightcoveVideoView.getAnalytics(); analytics.setAccount("your account Id");
-
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'analysesetAccount()
méthode. Cela vous permet d'afficher les données de cette application dans Video Cloud Analytics.Analytics analytics = brightcoveVideoView.getAnalytics(); analytics.setAccount("your account Id");
-
Créez un objet vidéo à partir de votre vidéo hébergée sur un serveur distant. Met le
DeliveryType
pour correspondre au type de vidéo que vous avez.Video video = Video.createVideo("https://sdks.support.brightcove.com/assets/videos/hls/greatblueheron/greatblueheron.m3u8", DeliveryType.HLS);
-
Chargez une image distante à utiliser comme image d'affiche avant le démarrage de la lecture vidéo.
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(); }
-
Ajoutez la vidéo à la vue et lancez la lecture de la vidéo.
brightcoveVideoView.add(video); brightcoveVideoView.start();
-
Votre code doit ressembler à ceci :
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 unVideoListener
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 lesVideoListener
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 unPlaylistListener
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.
Pour des exemples de projets complets, voir les exemples de lecteurs Android.