概要
このクイックスタートを完了すると、以下ができるようになります。
- Gradle を使用して、プロジェクトを作成し、Android 用 Brightcove Player SDK を追加します。
- レイアウトを変更してを含めます
BrightcoveExoPlayerVideoView。 onCreate()動画を再生する方法に追加します。異なるソースから。
Audience
開発に Android Studio を使用し、Android アプリで Android 用 Brightcove Player SDK を使用することに興味がある開発者。
前提条件
JavaとAndroidアプリの開発に関する最小限の知識。
準備しろ
Android Studioをインストールして開発の準備をしてください
- Androidスタジオアプリケーションをダウンロードします。
- ページの指示に従って、アプリケーションをインストールします。
プロジェクトを作成する
Android Studioでプロジェクトを作成し、Gradleを使用してプレーヤーSDKにリンクします。
Androidスタジオでプロジェクトを作成する
- Androidスタジオを開きます。
- Android Studio を初めて開く場合は、[ 新しい Android Studio プロジェクトを開始する ] を選択します。
- メニューが表示されている場合は、[ ファイル] [新規作成] [> > 新規プロジェクト ] の順に選択します。
- [ プロジェクトの選択] ウィンドウで、[ Empty Views Activity ] を選択し、[ 次へ ] をクリックします。このガイドでは Java、XML レイアウト、Groovy の Gradle ファイルを使用し、Compose のアクティビティは使用しません。古い Android Studio では、このテンプレートは Empty Activity と表示されます。
Empty Views Activity を選択 -
Name、Package name、Save location、Language、Minimum SDK の値を指定します。Build configuration language は Groovy DSL (build.gradle) に設定してください。ウィザードの既定値は Kotlin DSL ですが、このガイドの Gradle スニペットは Groovy の構文を使用します。このクイックスタートでは、以下の値が使用されます。
プロジェクトの値 - [Finish]をクリックします。
-
Android Studioはしばらく動作し、最終的にプロジェクトの初期状態を表示します。
スタジオプロジェクト
Gradle を使用して Android 用 Brightcove Player SDK を追加する
settings.gradleの依存関係リポジトリに Brightcove Maven リポジトリを追加します。dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven { url 'https://repo.brightcove.com/releases' } } }- Gradle の実行には JDK 17 を使用します。現在のサンプルは Android Gradle Plugin 8.10.1 と Gradle 8.13 ラッパーを使用します。古い Gradle 7 の構成にダウングレードしないでください。
- モジュールの
build.gradleを、現在のサンプルと同様に設定します。android { compileSdk 36 defaultConfig { minSdk 21 targetSdk 36 } compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 coreLibraryDesugaringEnabled true } } dependencies { implementation "com.brightcove.player:exoplayer2:${anpVersion}" implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.3' }exoplayer2アーティファクトは、コア SDK を推移的依存関係として含みます。SDK 10.0.0 以降、このアーティファクトは名前を維持したまま AndroidX Media3 を使用します。ビルドごとにバージョンが変わらないように、
+を含む動的バージョンではなく、特定のリリース済みバージョンを指定してください。 gradle.propertiesに次を設定します。最新のリリースバージョンは SDK の概要で確認できます。android.useAndroidX=true anpVersion=10.4.32 org.gradle.jvmargs=-Xmx4g- プロジェクトを同期して変更を反映します。
アプリケーションのコード化
次に、アプリをレイアウトし、ビデオリストを作成し、ビデオを再生するコードを記述します
アプリのレイアウトを定義する
Empty Views Activity テンプレートでは、TextView を含む単純なレイアウトが作成されます。これを、プレーヤーのビューを定義する BrightcoveExoPlayerVideoView に置き換えます。
- ファイルを開きます
app/res/layout/activity_main.xml。 -
ファイルのタブの下部にある [ テキスト ] をクリックして、未処理の XML を表示します。
レイアウト XML ファイル -
TextView既存の要素を削除し、BrightcoveExoPlayerVideoViewセクションを追加して、結果の XML が次のように表示されるようにします。後で使用するための注意idビューの名前が付けられています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="com.brightcove.playvideos.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>
アプリがインターネットを使用できるようにする
app/manifests/AndroidManifest.xmlファイルを開きます。-
<application>コードブロックの直後に、</manifest>終了タグの上に、以下を挿入してインターネットアクセスを有効にします。<uses-permission android:name="android.permission.INTERNET"/> - プロジェクトを同期して再構築し、これらの変更を取り上げます。
ビューを作成してビデオを再生する
-
MainActivity.javaファイルに戻ります。MainActivityクラスの場合は、クラスを拡張しますBrightcovePlayer。これにより、アプリのデフォルトのライフサイクル管理が提供されます。public class MainActivity extends BrightcovePlayer { -
BrightcovePlayerクラスはプロジェクトに自動的にはインポートされません。オプション+リターンキーを押して、importクラスのステートメントを追加します。前:
クラスをインポート中 後:
インポートされたクラス これは、プロジェクトに追加するすべての新しいクラスに対して行います。
-
onCreate()関数を見つけます。関数内の既存のコードの下に、以下を追加します。-
のインスタンスを作成し
BrightcoveExoPlayerVideoView、レイアウトに関連付けます。ほとんどの場合、Explayer ビューを使用します。詳細については、「ビデオビューの選択」ドキュメントを参照してください。
public class MainActivity extends BrightcovePlayer { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); brightcoveVideoView = (BrightcoveExoPlayerVideoView) findViewById(R.id.brightcove_video_view);BrightcoveExoPlayerVideoViewクラスをインポートすることを忘れないでください。 -
-
次に、
setAccount()アナリティクスメソッドを使用して Brightcove Player アカウント ID をBrightcoveに送信する必要があります。Analytics analytics = brightcoveVideoView.getAnalytics(); analytics.setAccount("your account Id"); -
オプション:
BrightcoveExoPlayerVideoViewクラスを上書きした場合、または Brightcove プレーヤーとカタログを使用しない場合は、Video Cloud パブリッシャー ID を Video Cloud Analytics に送信する必要があります。これは、setAccount()分析メソッドを使用して行うことができます。これにより、このアプリのデータを Video Cloud Analytics で表示できます。Analytics analytics = brightcoveVideoView.getAnalytics(); analytics.setAccount("your account Id"); -
リモートサーバーでホストされているビデオからビデオオブジェクトを作成します。使用するビデオの種類に合わせて、を設定します。
DeliveryTypeVideo video = Video.createVideo("https://sdks.support.brightcove.com/assets/videos/hls/greatblueheron/greatblueheron.m3u8", DeliveryType.HLS); -
ビデオの再生を開始する前に、ポスター画像として使用するリモート画像をロードします。
try { java.net.URI myposterImage = new java.net.URI("https://solutions.brightcove.com/bcls/assets/images/Great-Blue-Heron.png"); video.getProperties().put(Video.Fields.STILL_IMAGE_URI, myposterImage); } catch (URISyntaxException e) { e.printStackTrace(); } -
ビデオをビューに追加し、ビデオの再生を開始します。
brightcoveVideoView.add(video); brightcoveVideoView.start(); -
onCreate()メソッドが次のように表示されることを確認します。@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); brightcoveVideoView = (BrightcoveExoPlayerVideoView) findViewById(R.id.brightcove_video_view); // 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://solutions.brightcove.com/bcls/assets/images/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(); } -
アプリケーションを実行またはデバッグして、ビデオの再生を確認します。
ビデオを入手して再生する
このセクションでは、Catalogクラスを使用して Video Cloud サーバーから 1 つのビデオを取得し、再生します。
com.brightcove.player.edge.Catalogこのクラスは、 Brightcove Playback API から動画と再生リストを取得するための非同期メソッドを提供します。これは、Video Cloud ライブラリからコンテンツを取得するための最新かつ推奨される API です。
不要なコードを削除する
- 以前のアプリの一部のコードはもう必要ありません。
onCreate()メソッドで、をインスタンス化した後にすべてのコードを削除しますbrightcoveVideoView。 -
onCreate()メソッドが次のように表示されることを確認します。public class MainActivity extends BrightcovePlayer { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); brightcoveVideoView = (BrightcoveExoPlayerVideoView) findViewById(R.id.brightcove_video_view); } }
カタログからビデオを取得する
- Video Cloud Studio から、次の情報を収集します。
- アカウントID
- 動画ID
- ポリシーキー
-
プロジェクトでカスタム値を定義します。
res/values/strings.xmlファイルを開き、次のように更新します。<?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> -
MainActivity.javaファイルに戻り、次のコードを追加します。- SDK からイベントエミッタを取得する
-
前のステップで定義されたアカウント ID とポリシーキーの値を使用して、のインスタンスを作成します。
com.brightcove.player.edge.Catalog
// Get the event emitter from the SDK and create a catalog request to fetch a video from the // Brightcove Edge service, given a video id, an account id and a policy key. EventEmitter eventEmitter = brightcoveVideoView.getEventEmitter(); Catalog catalog = new Catalog(eventEmitter, getString(R.string.account), getString(R.string.policy)); -
カタログを使用する
findVideoByID()ビデオIDとVideoListenerコールバック用。catalog.findVideoByID(getString(R.string.videoId), new VideoListener() { // Add the video found to the queue with add(). // Start playback of the video with start(). @Override public void onVideo(Video video) { } @Override public void onError(String s) { } }); -
onVideo()メソッドで、ビデオをに追加しbrightcoveVideoView、ビデオを開始します。// Start playback of the video with start(). @Override public void onVideo(Video video) { brightcoveVideoView.add(video); brightcoveVideoView.start(); } -
onError()メソッドでエラー文字列をスローします。@Override public void onError(String s) { throw new RuntimeException(s); } -
MainActivityあなたのクラスの完全なコードは、次のようになります。public class MainActivity extends BrightcovePlayer { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); brightcoveVideoView = (BrightcoveExoPlayerVideoView) findViewById(R.id.brightcove_video_view); EventEmitter eventEmitter = brightcoveVideoView.getEventEmitter(); Catalog catalog = new Catalog(eventEmitter, getString(R.string.account), getString(R.string.policy)); catalog.findVideoByID(getString(R.string.videoId), new VideoListener() { // Add the video found to the queue with add(). // Start playback of the video with start(). @Override public void onVideo(Video video) { brightcoveVideoView.add(video); brightcoveVideoView.start(); } @Override public void onError(String s) { throw new RuntimeException(s); } }); } } - アプリを実行して、ビデオの再生を確認します。
プレイリストを取得して再生する
このセクションでは、Catalogクラスを使用して Video Cloud サーバーからプレイリストを取得し、再生リストでビデオを再生します。
com.brightcove.player.edge.Catalogこのクラスは、 Brightcove Playback API から動画と再生リストを取得するための非同期メソッドを提供します。これは、Video Cloud ライブラリからコンテンツを取得するための最新かつ推奨される API です。
不要なコードを削除する
-
以前のアプリの一部のコードはもう必要ありません。Catalog
findVideoByID()のメソッドへの呼び出しと、VideoListener関連付けられた匿名コールバック関数を削除します。catalog.findVideoByID(getString(R.string.videoId), new VideoListener() { // Add the video found to the queue with add(). // Start playback of the video with start(). @Override public void onVideo(Video video) { brightcoveVideoView.add(video); brightcoveVideoView.start(); } @Override public void onError(String s) { throw new RuntimeException(s); } });
カタログからプレイリストを取得する
-
既存のカタログインスタンスはプレイリストの取得に機能するため、以下のコード行を変更する必要はありません。
EventEmitter eventEmitter = brightcoveVideoView.getEventEmitter(); Catalog catalog = new Catalog(eventEmitter, getString(R.string.account), getString(R.string.policy)); - Video Cloud Studio の Media モジュールで、プレイリストを選択し、プレイリスト ID をコピーします。
-
res/values/strings.xmlの<resources>内に、自分のプレイリスト ID を追加します。<string name="playlistId">your playlist id</string> -
カタログを使用する
findPlaylistByID()プレイリストIDとPlaylistListenerコールバック用。catalog.findPlaylistByID(getString(R.string.playlistId), new PlaylistListener() { @Override public void onPlaylist(Playlist playlist) { } @Override public void onError(String s) { } }); -
onPlaylist()メソッドで、再生リストからビデオを取得し、すべてのビデオをに追加してからbrightcoveVideoView、最初のビデオを開始します。@Override public void onPlaylist(Playlist playlist) { brightcoveVideoView.addAll(playlist.getVideos()); brightcoveVideoView.start(); } -
onError()メソッドでエラー文字列をスローします。@Override public void onError(String s) { throw new RuntimeException(s); } -
MainActivityあなたのクラスの完全なコードは、次のようになります。public class MainActivity extends BrightcovePlayer { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); brightcoveVideoView = (BrightcoveExoPlayerVideoView) findViewById(R.id.brightcove_video_view); EventEmitter eventEmitter = brightcoveVideoView.getEventEmitter(); Catalog catalog = new Catalog(eventEmitter, getString(R.string.account), getString(R.string.policy)); catalog.findPlaylistByID(getString(R.string.playlistId), new PlaylistListener() { @Override public void onPlaylist(Playlist playlist) { brightcoveVideoView.addAll(playlist.getVideos()); brightcoveVideoView.start(); } @Override public void onError(String s) { throw new RuntimeException(s); } }); } } - アプリを実行して、プレイリストの再生で複数の動画を確認します。
おまえ終わった!Android SDKクイックスタートを使って作業していただきありがとうございます。