サポート問い合わせ先| システムステータス
ページコンテンツ

    ステップバイステップ:Android用ネイティブSDKを使用したシンプルなビデオアプリ

    このトピックでは、AndroidStudioとBrightcovePlayer SDK for Androidを使用して、Brightcove VideoCloudアカウントからのビデオとBrightcoveVideoCloudプレイリストからのビデオを再生するアプリを作成します。

    概要

    このクイックスタートを完了すると、以下ができるようになります。

    • Gradle を使用して、プロジェクトを作成し、Android 用 Brightcove Player SDK を追加します。
    • レイアウトを変更してを含めますBrightcoveExoPlayerVideoView
    • onCreate()動画を再生する方法に追加します異なるソースから。

    Audience

    開発に Android Studio を使用し、Android アプリで Android 用 Brightcove Player SDK を使用することに興味がある開発者。

    前提条件

    JavaとAndroidアプリの開発に関する最小限の知識。

    準備しろ

    Android Studioをインストールして開発の準備をしてください

    1. Androidスタジオアプリケーションをダウンロードします
    2. ページの指示に従って、アプリケーションをインストールします。

    プロジェクトを作成する

    Android Studioでプロジェクトを作成し、Gradleを使用してプレーヤーSDKにリンクします。

    Androidスタジオでプロジェクトを作成する

    1. Androidスタジオを開きます。
      • Android Studio を初めて開く場合は、[ 新しい Android Studio プロジェクトを開始する ] を選択します。
      • メニューが表示されている場合は、[ ファイル] [新規作成] [> > 新規プロジェクト ] の順に選択します。
    2. [ プロジェクトの選択] ウィンドウで、[ 空のアクティビティ ] を選択し、[ 次へ ] をクリックします。
      Choose Empty Activity
      空のアクティビティを選択
    3. の値を指定します名前パッケージ名言語、 と位置を保存。このクイックスタートでは、以下の値が使用されます。

      Project name
      プロジェクトの値
    4. [Finish]をクリックします。
    5. Android Studioはしばらく動作し、最終的にプロジェクトの初期状態を表示します。

      Studio project
      スタジオプロジェクト

    Gradle を活用して Android 用Brightcoveプレーヤー SDK にリンクする

    GradleはAndroid Studioと統合されているので、あなたはあなたのプロジェクトにAndroid用のネイティブSDKを追加するためにそれを使用します。

    1. Gradle スクリプトセクションを展開し、PlayVideos プロジェクトの現在のモジュールに関連付けられている 2 build.gradle番目のファイルを開きます。

      Build gradle file
      gradleファイルを構築
    2. build.gradleファイルで、次の操作を行います。

      1. 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
            }
        }
      2. androidセクションの下に、Brightcove Maven repositoriesレポのセクションを追加します。
        repositories {
              maven {
                  url 'https://repo.brightcove.com/releases'
              }
            }
      3. 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 がアプリのソースコードと予期せず互換性がなくなる可能性があるため、ビルドプロセスに大きなリスクが生じます。

    3. Gradleファイルの変更を取得するためにプロジェクトを同期します。

    アプリケーションのコード化

    次に、アプリをレイアウトし、ビデオリストを作成し、ビデオを再生するコードを記述します

    アプリのレイアウトを定義する

    空のアクティビティでも、TextView単純なレイアウトが得られます。これはBrightcoveExoPlayerVideoView、プレーヤーのビューを定義するに置き換えます。

    1. ファイルを開きますapp/res/layout/activity_main.xml
    2. ファイルのタブの下部にある [ テキスト ] をクリックして、未処理の XML を表示します。

      Layout XML file
      レイアウト XML ファイル
    3. 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>

    アプリがインターネットを使用できるようにする

    1. app/manifests/AndroidManifest.xmlファイルを開きます。
    2. <application>コードブロックの直後に、</manifest>終了タグの上に、以下を挿入してインターネットアクセスを有効にします。

      <uses-permission android:name="android.permission.INTERNET"/>
    3. プロジェクトを同期して再構築し、これらの変更を取り上げます。

    ビューを作成してビデオを再生する

    1. MainActivity.javaファイルに戻ります。MainActivityクラスの場合は、クラスを拡張しますBrightcovePlayer。これにより、アプリのデフォルトのライフサイクル管理が提供されます。

      public class MainActivity extends BrightcovePlayer {
    2. BrightcovePlayerクラスはプロジェクトに自動的にはインポートされません。オプション+リターンキーを押してimportクラスのステートメントを追加します。

      前:

      Importing class
      クラスをインポート中

      後:

      Imported class
      インポートされたクラス

      これは、プロジェクトに追加するすべての新しいクラスに対して行います。

    3. 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クラスをインポートすることを忘れないでください。

    4. 次に、setAccount()アナリティクスメソッドを使用して Brightcove Player アカウント ID をBrightcoveに送信する必要があります。

      Analytics analytics = brightcoveVideoView.getAnalytics();
      analytics.setAccount("your account Id");
    5. オプション:BrightcoveExoPlayerVideoViewクラスを上書きした場合、または Brightcove プレーヤーとカタログを使用しない場合は、Video Cloud パブリッシャー ID を Video Cloud Analytics に送信する必要があります。これは、setAccount()分析メソッドを使用して行うことができます。これにより、このアプリのデータを Video Cloud Analytics で表示できます。

      Analytics analytics = brightcoveVideoView.getAnalytics();
      analytics.setAccount("your account Id");
    6. リモートサーバーでホストされているビデオからビデオオブジェクトを作成します。使用するビデオの種類に合わせて、を設定します。DeliveryType

      Video video = Video.createVideo("https://learning-services-media.brightcove.com/videos/hls/greatblueheron/greatblueheron.m3u8",
        DeliveryType.HLS);
    7. ビデオの再生を開始する前に、ポスター画像として使用するリモート画像をロードします。

      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();
      }
    8. ビデオをビューに追加し、ビデオの再生を開始します。

      brightcoveVideoView.add(video);
      brightcoveVideoView.start();
    9. 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();
        }
    10. アプリケーションを実行またはデバッグして、ビデオの再生を確認します。

    ビデオを入手して再生する

    このセクションでは、Catalogクラスを使用して Video Cloud サーバーから 1 つのビデオを取得し、再生します。

    com.brightcove.player.edge.Catalogこのクラスは、 Brightcove Playback API から動画と再生リストを取得するための非同期メソッドを提供します。これは、Video Cloud ライブラリからコンテンツを取得するための最新かつ推奨される API です。

    不要なコードを削除する

    1. 以前のアプリの一部のコードはもう必要ありません。onCreate()メソッドで、をインスタンス化した後にすべてのコードを削除しますbrightcoveVideoView
    2. 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);
        }
      }

    カタログからビデオを取得する

    1. Video Cloud Studio から、次の情報を収集します。
      • アカウントID
      • 動画ID
      • ポリシーキー
       
    2. プロジェクトでカスタム値を定義します。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>
    3. 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));
        
    4. カタログを使用する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) {
          }
      });
    5. onVideo()メソッドで、ビデオをに追加しbrightcoveVideoView、ビデオを開始します。

      // Start playback of the video with start().
        @Override
          public void onVideo(Video video) {
            brightcoveVideoView.add(video);
            brightcoveVideoView.start();
          }
    6. onError()メソッドでエラー文字列をスローします。

      @Override
          public void onError(String s) {
            throw new RuntimeException(s);
          }
    7. 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);
            }
          });
        }
      }
    8. アプリを実行して、ビデオの再生を確認します。

    プレイリストを取得して再生する

    このセクションでは、Catalogクラスを使用して Video Cloud サーバーからプレイリストを取得し、再生リストでビデオを再生します。

    com.brightcove.player.edge.Catalogこのクラスは、 Brightcove Playback API から動画と再生リストを取得するための非同期メソッドを提供します。これは、Video Cloud ライブラリからコンテンツを取得するための最新かつ推奨される API です。

    不要なコードを削除する

    1. 以前のアプリの一部のコードはもう必要ありません。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);
            }
        });

    カタログからプレイリストを取得する

    1. 既存のカタログインスタンスはプレイリストの取得に機能するため、以下のコード行を変更する必要はありません

      EventEmitter eventEmitter = brightcoveVideoView.getEventEmitter();
      Catalog catalog = new Catalog(eventEmitter, getString(R.string.account), getString(R.string.policy));
    2. Video Cloud Studio の Media モジュールで、プレイリストを選択し、プレイリスト ID をコピーします。
    3. カタログを使用するfindPlaylistByID()プレイリストIDとPlaylistListenerコールバック用。

      catalog.findPlaylistByID("2764931905001", new PlaylistListener() {
        @Override
        public void onPlaylist(Playlist playlist) {
        }
      
        @Override
        public void onError(String s) {
        }
      });
    4. onPlaylist()メソッドで、再生リストからビデオを取得し、すべてのビデオをに追加してからbrightcoveVideoView、最初のビデオを開始します。

      @Override
          public void onPlaylist(Playlist playlist) {
            brightcoveVideoView.addAll(playlist.getVideos());
            brightcoveVideoView.start();
          }
    5. onError()メソッドでエラー文字列をスローします。

       @Override
          public void onError(String s) {
            throw new RuntimeException(s);
          }
    6. 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);
            }
          });
        }
      }
    7. アプリを実行して、プレイリストの再生で複数の動画を確認します。

    おまえ終わった!Android SDKクイックスタートを使って作業していただきありがとうございます。


    ページの最終更新日04 Oct 2021