É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

  1. Téléchargez le Android Studio application.
  2. 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

  1. Ouvrez Android Studio.
  2. Dans la boîte de dialogue Bienvenue dans Android Studio , sélectionnez Nouveau projet.
    Sélectionnez Nouveau projet
    Sélectionnez Nouveau projet
  3. Dans la boîte de dialogue Nouveau projet , sélectionnez Activité vide et cliquez sur Suivant.
    Choisissez une activité vide
    Choisissez une activité vide
  4. 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
    Nouveau projet
  5. Cliquez sur Terminer.
  6. Android Studio fonctionnera pendant un certain temps et affichera éventuellement l'état initial du projet.

    Projet d'atelier
    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.

  1. Dans la vue Android , vous trouverez les fichiers de votre projet.
  2. Élargir la Gradle Scripts groupe et ouvrez le settings.gradle déposer.
    Construire le fichier gradle
    Construire le fichier gradle
  3. 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'
  4. Dans le Gradle Scripts groupe, ouvrez le build.gradle fichier associé au module actuel dans votre projet PlayVideos.

    Construire le fichier gradle
    Construire le fichier gradle
  5. 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.
    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.

  6. Dans le Gradle Scripts groupe, ouvrez le gradle.properties déposer.

    Propriétés de Gradle
    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 .
    android.enableJetifier=true
    android.useAndroidX=true
    anpVersion=8.0.0
    org.gradle.jvmargs=-XX\:MaxPermSize\=512m
     
  7. 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.

  1. Ouvrez le fichier app/res/layout/activity_main.xml et cliquez sur Code.

    Fichier XML de mise en page
    Fichier XML de mise en page
  2. 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.

    <?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

  1. Ouvrez le app/manifests/AndroidManifest.xml déposer.
  2. 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"/>
  3. Synchronisez le projet pour le reconstruire et récupérer ces modifications.

Créer la vue et lire une vidéo

  1. Retour au MainActivity.java déposer.

    Fichier MainActivity
    Fichier MainActivity
  2. 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 {
  3. 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
    Classe BrightcovePlayer
  4. 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.

  5. 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");
  6. 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.

    Analytics analytics = brightcoveVideoView.getAnalytics();
    analytics.setAccount("your account Id");

  7. 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);
  8. 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();
    }
  9. Ajoutez la vidéo à la vue et lancez la lecture de la vidéo.

    brightcoveVideoView.add(video);
    brightcoveVideoView.start();
  10. 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();
      
          }
      }
  11. 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

  1. 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.
  2. 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

  1. À partir de votre compte Video Cloud Studio, collectez les informations suivantes :
    • identifiant de compte
    • ID vidéo
    • Clé de stratégie
     
  2. 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>
  3. 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();
  4. 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();
  5. 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();
      }
    });
  6. 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();
          }
        });
      }
    }
  7. 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

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

  1. 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();
  2. Dans Video Cloud Studio Médias module, sélectionnez une liste de lecture et copiez le Identifiant de la liste de lecture.
  3. 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>
  4. 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();
      }
    });
  5. 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();
          }
        });
      }
    }
  6. 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.