概要
このクイックスタートを完了すると、以下ができるようになります。
- 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 プロジェクトを開始する ] を選択します。
- メニューが表示されている場合は、[ ファイル] [新規作成] [> > 新規プロジェクト ] の順に選択します。
- [ プロジェクトの選択] ウィンドウで、[ 空のアクティビティ ] を選択し、[ 次へ ] をクリックします。
空のアクティビティを選択 -
の値を指定します名前、パッケージ名、言語、 と位置を保存。このクイックスタートでは、以下の値が使用されます。
プロジェクトの値 - [Finish]をクリックします。
-
Android Studioはしばらく動作し、最終的にプロジェクトの初期状態を表示します。
スタジオプロジェクト
Gradle を活用して Android 用Brightcoveプレーヤー SDK にリンクする
GradleはAndroid Studioと統合されているので、あなたはあなたのプロジェクトにAndroid用のネイティブSDKを追加するためにそれを使用します。
-
Gradle スクリプトセクションを展開し、PlayVideos プロジェクトの現在のモジュールに関連付けられている 2
build.gradle
番目のファイルを開きます。gradleファイルを構築 -
build.gradle
ファイルで、次の操作を行います。android
セクションで、compileOptions
次の値を追加します。android { compileSdkVersion 28 defaultConfig { applicationId "com.brightcove.playvideos1" minSdkVersion 21 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { targetCompatibility JavaVersion.VERSION_1_8 } }
android
セクションの下に、Brightcove Mavenrepositories
レポのセクションを追加します。repositories { maven { url 'https://repo.brightcove.com/releases' } }
dependencies
「」セクションで、Android 用ネイティブ SDK の最新バージョンを含めます。6.10.0
以下の値を、最新の SDK バージョンに置き換えます。これは「概要」にあります。Android 用Brightcoveネイティブ SDK ドキュメント。dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support.constraint:constraint-layout:1.0.2' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' implementation "com.brightcove.player:exoplayer2:6.10.0" }
'+で動的依存関係バージョンを使用する' Gradleコミュニティではキャラクターは推奨されていません。動的バージョニングを使用すると、新しい API がアプリのソースコードと予期せず互換性がなくなる可能性があるため、ビルドプロセスに大きなリスクが生じます。
- Gradleファイルの変更を取得するためにプロジェクトを同期します。
アプリケーションのコード化
次に、アプリをレイアウトし、ビデオリストを作成し、ビデオを再生するコードを記述します
アプリのレイアウトを定義する
空のアクティビティでも、TextView
単純なレイアウトが得られます。これはBrightcoveExoPlayerVideoView
、プレーヤーのビューを定義するに置き換えます。
- ファイルを開きます
app/res/layout/activity_main.xml
。 -
ファイルのタブの下部にある [ テキスト ] をクリックして、未処理の XML を表示します。
レイアウト XML ファイル -
TextView
既存の要素を削除し、BrightcoveExoPlayerVideoView
セクションを追加して、結果の XML が次のように表示されるようにします。後で使用するための注意id
ビューの名前が付けられていますbrightcove_video_view
。<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.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"/> </android.support.constraint.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");
-
リモートサーバーでホストされているビデオからビデオオブジェクトを作成します。使用するビデオの種類に合わせて、を設定します。
DeliveryType
Video video = Video.createVideo("https://learning-services-media.brightcove.com/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://learning-services-media.brightcove.com/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 をコピーします。
-
カタログを使用する
findPlaylistByID()
プレイリストIDとPlaylistListener
コールバック用。catalog.findPlaylistByID("2764931905001", 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("4845949311001", 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クイックスタートを使って作業していただきありがとうございます。