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
Im Gradle-Skripte Gruppe, öffnen Sie die build.gradle Datei, die dem aktuellen Modul in Ihrem PlayVideos-Projekt zugeordnet ist.
Gradle-Datei erstellen
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.
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.
Im Gradle-Skripte Gruppe, öffnen Sie die gradle.properties Datei.
Gradle-Eigenschaften
Ändern Sie das in gradle.propertiesproperties mit dem folgenden Code. Beispielcode ist im android-player-samples Repository zu finden.
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.
Öffnen Sie die Datei app/res/layout/activity_main.xml und klicken Sie auf Code.
XML-Layout-Datei
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.
Synchronisieren Sie das Projekt, um es neu zu erstellen und diese Änderungen zu übernehmen.
Erstellen Sie die Ansicht und spielen Sie ein Video ab
Gehe zurück zum MainActivity.java Datei.
MainActivity-Datei
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 {
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
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.
Als Nächstes müssen Sie Ihre Brightcove-Spielerkonto-ID mithilfe der Analyse an Brightcove senden setAccount() Methode.
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.
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();
}
}
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
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.
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
Erfassen Sie in Ihrem Video Cloud Studio-Konto die folgenden Informationen:
Konto-ID
Video-ID
Richtlinienschlüssel
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>
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();
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();
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();
}
});
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();
}
});
}
}
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
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
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();
In Video Cloud Studio Medien Modul, wählen Sie eine Playlist aus und kopieren Sie die Playlist-ID.
Ö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>
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();
}
});
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();
}
});
}
}
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.