Schritt für Schritt: Einfache Video-App mit dem Native SDK für Android

In diesem Thema werden Sie Android Studio und das Brightcove-Player-SDK für Android verwenden, um eine App zu erstellen, die ein Video von einem Brightcove Video Cloud-Konto sowie Videos aus einer Brightcove Video Cloud-Wiedergabeliste wiedergibt.

Überblick

Nach Abschluss dieses Quick Starts sollten Sie in der Lage sein:

  • Erstellen Sie mit Gradle ein Projekt und fügen Sie das Brightcove Player SDK für Android hinzu.
  • Ändern Sie das Layout, um a . einzuschließen BrightcoveExoPlayerVideoView.
  • Zu den hinzufügen onCreate() Methode zum Abspielen von Videos. aus verschiedenen Quellen.

Publikum

Entwickler, die Android Studio für die Entwicklung verwenden und daran interessiert sind, das Brightcove Player SDK für Android in einer Android-App zu verwenden.

Voraussetzungen

Mindestens Kenntnisse in der Entwicklung von Java- und Android-Apps.

Bereit machen

Bereiten Sie sich auf die Entwicklung vor, indem Sie Android Studio installieren

  1. Laden Sie die . herunter Android-Studio Anwendung.
  2. Folgen Sie den Anweisungen von Android Studio, um die Anwendung zu installieren.

Erstellen Sie ein Projekt

Erstellen Sie ein Projekt in Android Studio und verknüpfen Sie es dann mit Gradle mit dem Player-SDK.

Erstellen Sie ein Projekt in Android Studio

  1. Öffnen Sie Android-Studio.
  2. Wählen Sie im Dialogfeld Willkommen bei Android Studio die Option Neues Projekt.
    Wählen Sie Neues Projekt
    Wählen Sie Neues Projekt
  3. Wählen Sie im Dialogfeld Neues Projekt die Option Leere Aktivität und klicken Sie auf Weiter.
    Wählen Sie eine leere Aktivität
    Wählen Sie eine leere Aktivität
  4. Geben Sie Werte für Name, Paketname, Speicherort, Sprache und Minimum SDK an. In diesem Schnellstart werden die unten gezeigten Werte verwendet:

    Neues Projekt
    Neues Projekt
  5. Klicken Sie auf Beenden.
  6. Android Studio funktioniert eine Weile und zeigt schließlich den Anfangszustand des Projekts an.

    Studioprojekt
    Studioprojekt

Verwenden Sie Gradle, um eine Verknüpfung zum Brightcove Player SDK für Android herzustellen

Da Gradle in Android Studio integriert ist, verwenden Sie es, um das Native SDK für Android zu Ihrem Projekt hinzuzufügen.

  1. In der Android-Ansicht finden Sie Ihre Projektdateien.
  2. Erweitere das Gradle-Skripte Gruppe und öffnen Sie die settings.gradle Datei.
    Gradle-Datei erstellen
    Gradle-Datei erstellen
  3. Fügen Sie in dem repositories Abschnitt einen Eintrag für das Brightcove Maven-Repo hinzu.
    dependencyResolutionManagement {
      repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
      repositories {
          google()
          mavenCentral()
          maven {
                url 'https://repo.brightcove.com/releases'
          }
      }
    }
    rootProject.name = "PlayVideos"
    include ':app'
  4. Im Gradle-Skripte Gruppe, öffnen Sie die build.gradle Datei, die dem aktuellen Modul in Ihrem PlayVideos-Projekt zugeordnet ist.

    Gradle-Datei erstellen
    Gradle-Datei erstellen
  5. Suchen Sie in der build.gradle Datei den dependencies Abschnitt. Binden Sie die neueste Version des Native SDK für Android ein. Ersetzen Sie den Wert 8.0.0 unten mit der neuesten SDK-Version, die Sie im Überblick: Brightcove Natives SDK für Android dokumentieren.
    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"
    }
     

    In der Gradle-Community wird davon abgeraten, eine dynamische Abhängigkeitsversion mit dem Zeichen '+' zu verwenden. Die Verwendung der dynamischen Versionsverwaltung birgt ein erhebliches Risiko für Ihren Build-Prozess, da neuere APIs möglicherweise unerwartet mit dem Quellcode Ihrer App inkompatibel werden.

  6. Im Gradle-Skripte Gruppe, öffnen Sie die gradle.properties Datei.

    Gradle-Eigenschaften
    Gradle-Eigenschaften
    Ändern Sie das in gradle.properties properties mit dem folgenden Code. Beispielcode ist im android-player-samples Repository zu finden.
    android.enableJetifier=true
    android.useAndroidX=true
    anpVersion=8.0.0
    org.gradle.jvmargs=-XX\:MaxPermSize\=512m
     
  7. Synchronisieren Sie das Projekt, um die Änderungen der Gradle-Datei zu übernehmen.

Codieren Sie die Anwendung

Als Nächstes schreiben Sie den Code, um die App zu gestalten, die Videoliste zu erstellen und die Videos abzuspielen

Definieren Sie das Layout der App

Auch mit der leeren Aktivität erhalten Sie ein einfaches TextView Layout. Ersetzen Sie dies durch die BrightcoveExoPlayerVideoView , die die Ansicht für den Player definiert.

  1. Öffnen Sie die Datei app/res/layout/activity_main.xml und klicken Sie auf Code.

    XML-Layout-Datei
    XML-Layout-Datei
  2. Entfernen Sie das vorhandene TextView Element und fügen Sie a . hinzu BrightcoveExoPlayerVideoView Abschnitt, sodass das resultierende XML wie folgt aussieht. Beachten Sie für die spätere Verwendung, dass id der Teil der Ansicht benannt ist 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>

Aktivieren Sie die App, um das Internet zu nutzen

  1. Öffne das app/manifests/AndroidManifest.xml Datei.
  2. Kurz nach dem <application> Codeblock, aber über der Endung </manifest> -Tag geben Sie Folgendes ein, um den Internetzugang zu aktivieren.

    <uses-permission android:name="android.permission.INTERNET"/>
  3. Synchronisieren Sie das Projekt, um es neu zu erstellen und diese Änderungen zu übernehmen.

Erstellen Sie die Ansicht und spielen Sie ein Video ab

  1. Gehe zurück zum MainActivity.java Datei.

    MainActivity-Datei
    MainActivity-Datei
  2. Für die MainActivity Klasse, erweitere die BrightcovePlayer Klasse. Dadurch wird die standardmäßige Lebenszyklusverwaltung für Ihre App bereitgestellt.

    public class MainActivity extends BrightcovePlayer {
  3. Wenn Sie mit der Eingabe beginnen BrightcovePlayer, sollten Sie Optionen zur Auswahl sehen. Ein Doppelklick auf die BrightcovePlayer Option fügt eine import Aussage hinzu.

    BrightcovePlayer-Klasse
    BrightcovePlayer-Klasse
  4. Suchen Sie die onCreate() Funktion. Ordnen Sie vor dem Betreten der Oberklasse Folgendes brightcoveVideoView zu:

    • Erstellen Sie eine Instanz von BrightcoveExoPlayerVideoView und ordnen Sie es dem Layout zu. In den meisten Fällen verwenden Sie die Exoplayer-Ansicht. Einzelheiten finden Sie im Auswählen einer Videoansicht dokumentieren.

    • Bei der Erweiterung der müssen wir die zuweisen BrightcovePlayer, brightcoveVideoView bevor wir die Superklasse betreten. Dies ermöglicht eine gewisse Verwaltung des Lebenszyklus von Stock-Videoplayern.
    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);

    Wenn Sie den oben hervorgehobenen Code einfügen, drücken Sie die Optionstasten + Return, um die import Anweisung für die BrightcoveExoPlayerVideoView Klasse hinzuzufügen.

  5. Als Nächstes müssen Sie Ihre Brightcove-Spielerkonto-ID mithilfe der Analyse an Brightcove senden setAccount() Methode.

    Analytics analytics = brightcoveVideoView.getAnalytics();
    analytics.setAccount("your account Id");
  6. Optional: Wenn Sie das überschreiben BrightcoveExoPlayerVideoView -Klasse verwenden oder den Brightcove-Player und -Katalog nicht verwenden, müssen Sie Ihre Video Cloud-Publisher-ID an Video Cloud Analytics senden. Sie können dies tun, indem Sie die Analyse verwenden setAccount() Methode. Auf diese Weise können Sie Daten für diese App in Video Cloud Analytics anzeigen.

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

  7. Erstellen Sie ein Videoobjekt aus Ihrem Video, das auf einem Remoteserver gehostet wird. Stellen Sie die DeliveryType passend zu Ihrem Videotyp.

    Video video = Video.createVideo("https://sdks.support.brightcove.com/assets/videos/hls/greatblueheron/greatblueheron.m3u8",
      DeliveryType.HLS);
  8. Laden Sie ein Remote-Bild, das als Posterbild verwendet werden soll, bevor die Videowiedergabe beginnt.

    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. Fügen Sie das Video zur Ansicht hinzu und starten Sie die Videowiedergabe.

    brightcoveVideoView.add(video);
    brightcoveVideoView.start();
  10. Ihr Code sollte folgendermaßen aussehen:

    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. Führen Sie die Anwendung aus oder debuggen Sie sie, um die Videowiedergabe zu sehen.

Holen Sie sich ein Video und spielen Sie es ab

In diesem Abschnitt verwenden Sie die Catalog -Klasse, um ein einzelnes Video vom Video Cloud-Server abzurufen und dann abzuspielen.

Die com.brightcove.player.edge.Catalog -Klasse bietet asynchrone Methoden zum Abrufen von Videos und Wiedergabelisten aus dem Brightcove-Wiedergabe-API. Dies ist die neueste und empfohlene API zum Abrufen von Inhalten aus Ihrer Video Cloud-Bibliothek.

Nicht benötigten Code entfernen

  1. Ein Teil des Codes aus der vorherigen App wird nicht mehr benötigt. Entfernen Sie in der onCreate() Methode den gesamten Code, nachdem Sie die Superklasse eingegeben haben.
  2. Bestätigen Sie Ihre onCreate() Methode sieht wie folgt aus:

    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);
    
      }
    }

Abrufen eines Videos aus dem Katalog

  1. Erfassen Sie in Ihrem Video Cloud Studio-Konto die folgenden Informationen:
    • Konto-ID
    • Video-ID
    • Richtlinienschlüssel
     
  2. Definieren Sie Ihre benutzerdefinierten Werte in Ihrem Projekt. Öffnen Sie die res/values/strings.xml Datei und aktualisieren Sie sie mit Ihren Werten:

    <?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. Kehren Sie zur MainActivity.java Datei zurück und rufen Sie den Event-Emitter aus dem SDK ab.
    // Get the event emitter from the SDK
    EventEmitter eventEmitter = brightcoveVideoView.getEventEmitter();
  4. Erstellen Sie eine Kataloganforderung, um ein Video vom Brightcove Edge-Service abzurufen, und verwenden Sie dabei die im vorherigen Schritt definierten Werte für Konto-ID und Richtlinienschlüssel.

    // 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. Verwenden Sie die Kataloge findVideoByID() Methode mit deiner Video-ID und a VideoListener für den Rückruf.

    In dem onVideo() Methode, füge das Video hinzu zu brightcoveVideoView , dann starten Sie das 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();
      }
    });
  6. Der komplette Code für deine MainActivity Klasse sollte ungefähr so aussehen:

    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. Führen Sie die App aus, um die Videowiedergabe zu bestätigen.

Eine Playlist abrufen und abspielen

In diesem Abschnitt verwenden Sie die Catalog -Klasse, um eine Wiedergabeliste vom Video Cloud-Server abzurufen, und geben Sie dann die Videos in der Wiedergabeliste wieder.

Die com.brightcove.player.edge.Catalog -Klasse bietet asynchrone Methoden zum Abrufen von Videos und Wiedergabelisten aus dem Brightcove-Wiedergabe-API. Dies ist die neueste und empfohlene API zum Abrufen von Inhalten aus Ihrer Video Cloud-Bibliothek.

Nicht benötigten Code entfernen

  1. Ein Teil des Codes aus der vorherigen App wird nicht mehr benötigt. Entfernen Sie den Aufruf zum Katalog findVideoByID() Methode und die dazugehörige VideoListener anonyme Rückruffunktion.

    // 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();
      }
    });

Abrufen einer Playlist aus dem Katalog

  1. Die vorhandene Kataloginstanz funktioniert zum Abrufen einer Playlist, also keine Änderungen notwendig zu diesen Codezeilen:

    // 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. In Video Cloud Studio Medien Modul, wählen Sie eine Playlist aus und kopieren Sie die Playlist-ID.
  3. Öffne die res/values/strings.xml Datei und füge einen Eintrag für deine Playlist-ID hinzu:

      <?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. Verwenden Sie die Kataloge findPlaylistByID() Methode mit deiner Playlist-ID und a PlaylistListener für den Rückruf.

    In dem onPlaylist() Methode, rufen Sie die Videos aus der Wiedergabeliste ab, fügen Sie alle Videos zu . hinzu brightcoveVideoView , dann starten Sie das erste 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();
      }
    });
  5. Der komplette Code für deine MainActivity Klasse sollte ungefähr so aussehen:

    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. Führen Sie die App aus, um mehrere Videos aus der Wiedergabeliste zu bestätigen.

Sie sind fertig! Vielen Dank, dass Sie den Android SDK-Schnellstart durchgearbeitet haben.

Vollständige Projektbeispiele finden Sie in den Android-Player-Beispielen.