概要: Brightcove Native SDK for Android
ドキュメントの構成
Brightcove では、ドキュメントを構造的に整理し、分かりやすく直感的にすることを心掛けています。そのため、すべてのプラグインや統合機能の詳細については、GitHub の README を活用しています。利便性を高めるため、以下に各プラグインへのリンクを掲載します。
Android サポート
Android 向けの Native SDK は、以下の Android バージョンをサポートしています。
アクティブ サポート
Brightcove は、最新の Android SDK に対して、以下の Android バージョンでアクティブ サポートを提供しています。
- 14.0
- 13.0
- 12.0
- 11.0
- 10.0
- 9.0
- 8.0, 8.1
パッシブ サポート
Brightcove は、以下の Android バージョンに対してパッシブ サポートを提供しています。
- 7.0, 7.1
- 6.0
- 5.0, 5.1
サポートレベルの理解
サポートは OS の [メジャーバージョン].[マイナーバージョン] (例: Android 8.1) に基づいて定義されます。Google による最新技術の改善を活用するために、Brightcove は 2 つのレベルのサポートを提供しています。
- アクティブ サポート: Brightcove はこれらのバージョンを積極的にテストし、新しい OS バージョンを優先して対応します。また、これらの OS バージョンに関連する問題を修正します。
- パッシブ サポート: Brightcove はこれらのバージョンでのテストを行っていませんが、問題が発生した場合には個別対応します。
通常、Brightcove は全ユーザーの 80% 以上が使用する OS バージョンにアクティブ サポートを提供し、少なくとも 5% のユーザーが使用するバージョンにパッシブ サポートを提供します。
Android バリアントのサポート
Brightcove の Native SDK for Android は、標準の Android OS リリース向けに開発およびテストされています。Brightcove は、LineageOS などのサードパーティによるカスタム Android ディストリビューションを公式にはサポートしていません。
そのため、カスタム Android バージョンを使用しているデバイスでは、Native SDK for Android を利用したアプリケーションで問題が発生する可能性があります。
コネクティッド TV / セットトップ ボックス
Android 向けの Native SDK は、以下の Android ベースのセットトップ ボックスをサポートしています。
- Android TV
- Fire TV (FireOS 5.0+ デバイス)
テスト済みのセットトップ ボックス デバイスには以下が含まれます。
- Nexus Player
- Nvidia Shield
Brightcove Native SDK for Android のサンプルアプリ は、Android TV および Fire TV で動作します。これにより、TV 向けのアプリに、広告挿入、コンテンツ保護 (DRM)、ライブ再生、カスタム UI コントロール、Brightcove Analytics、および QoE メトリクスを組み込むことができます。
TV アプリの UI コントロールをカスタマイズする方法については、Styled Controls サンプルアプリ を参照してください。
はじめに
Android SDK での開発を始める前に、以下の概念について理解しておく必要があります。
- メディア
現在のバージョンの Native SDK は、Playback API を使用して Video Cloud アカウントのコンテンツを再生することができます。また、インターネット上にアクセス可能な URL のリモートアセットとしても再生可能です。
- アナリティクス
Native SDK を使用すると、Video Cloud の顧客は自動的に Video Cloud で報告される堅牢な分析データを取得することができます。
- Gradle
Gradle は Android SDK のビルドシステムの基盤であり、Android Studio に統合されています。
- Maven リポジトリ
Brightcove Native SDK for Android の Maven アーティファクト (jar ファイル) は Brightcove Maven リポジトリで入手可能です。https://repo.brightcove.com/releases
- Android SDK の概要
SDK の理解を深めるために、重要なコンポーネントがどのように相互作用してネイティブ ビデオ プレーヤーの制御を行うかを学びましょう。
- Native SDK for Android を使用したアプリの構築
Brightcove Native SDK for Android を使用して、独自のバックエンドシステムからビデオを再生する最初のアプリを作成します。Video Cloud の顧客は、Brightcove カタログサービスからビデオを取得して再生することもできます。
- ビデオ オンデマンド トレーニング
Android Studio でのアプリ開発の手順を学べるトレーニングビデオを視聴することができます。このシリーズでは、Video Cloud ライブラリのビデオやプレイリストを再生するアプリの構築手順を解説します。
- メーリングリスト
Brightcove Native SDK のメーリング リストに参加し、最新のリリース情報を受け取ることができます。
SDK のダウンロード
最新の Brightcove Native SDK for Android を入手:
パッケージ (GitHub リポジトリ) |
リファレンス ドキュメント | 備考 | サポートフレームワーク | サンプル | |
---|---|---|---|---|---|
SDK | Native SDK for Android v10.0.1 | SDK リファレンス | リリースノート | Media3 1.4.1 | サンプルアプリ |
または、以下のボタンをクリックしてください。
備考
最新バージョンの Native SDK に関する注意点:
バージョン 10.0.0 以降、Brightcove の Native SDK for Android は Media3 を使用しています。
バージョン 6.10.0 以降、Brightcove の Native SDK for Android は Jetpack (androidx.*) ライブラリを使用し、従来のサポートライブラリは廃止されました。この変更は ExoPlayer バージョン 2.10.0 以降で必須となります。Jetpack を使用するには、アプリが以下の要件を満たしている必要があります。
- Jetpack (AndroidX) 依存関係への移行
- Android Gradle Tools 3.2.0
- Gradle バージョン 4.6
Jetpack への移行方法については、公式の Android 移行ガイド を参照してください。
android {
compileOptions {
targetCompatibility JavaVersion.VERSION_11
}
}
これは、プロジェクトの compileSdkVersion
値に基づくデフォルトのJavaバージョンを上書きします。
Core SDK のインストール
Brightcove Core SDK のインストールは非常に簡単です。以下の 2 つの方法があります。
Gradle ビルドシステムを使用する
Brightcove SDK とその依存関係を追加する最も簡単な方法は、Android Studio の Gradle ビルドシステムを使用することです。
Gradle コミュニティでは、「+」記号を使用した動的な依存バージョンの使用は推奨されていません。動的バージョンを使用すると、新しい API による非互換性が予期せず発生するリスクがあるため、ビルドプロセスに大きな影響を与える可能性があります。
Gradle の詳細については、Android の公式ドキュメント ビルド依存関係の追加 を参照してください。
SDK を手動でダウンロードする
Brightcove SDK を手動でダウンロードする方法は以下の通りです。
- SDK をダウンロードして解凍します。いくつかのフォルダが含まれています。
- sdk フォルダ内に、android-sdk-x.x.x.aar という名前の Core SDK が含まれています。x.x.x は最新の SDK バージョン番号です。
- android-sdk-x.x.x.aar ファイルをライブラリに追加し、必要に応じてプラグイン ファイルも追加してください。
統合プラグイン
以下の表には、SDK の実装に統合できるプラグインへのリンクが記載されています。各プラグインは対応する GitHub リポジトリからダウンロードでき、各リポジトリにはプラグインのセットアップ手順を記載した詳細な README が含まれています。
サンプル アプリでは、各プラグインが SDK に統合された基本的な機能を示しています。サンプルアプリを利用することで、各プラグインの動作を学び、デバッグの際の参考にすることができます。
カテゴリ | Brightcove プラグイン | 参照ドキュメント | サンプル アプリ | サポートされるパートナー/ベンダープラグイン |
---|---|---|---|---|
広告 | FreeWheel プラグイン 10.0.1 | FreeWheel リファレンス | ベーシック FreeWheel サンプル | FreeWheel AdManager ライブラリ 6.28.0 |
FreeWheel と Widevine モジュラー サンプル | ||||
IMA プラグイン 10.0.1 | IMA リファレンス | Ad Rules with IMA サンプル | Google IMA 3.36.0 | |
IMA と Widevine サンプルを使用した広告ルール | ||||
ベーシック IMA VAST サンプル | ||||
Pulse プラグイン 10.0.1 | Pulse リファレンス | Pulse サンプル | Pulse SDK 2.5.20.3.0 | |
SSAI プラグイン 10.0.1 | SSAI リファレンス | ベーシック SSAI サンプル | なし | |
アナリティクス | Omniture プラグイン 10.0.1 | Omniture リファレンス | AdobeVideoLibrary 4.11.0 VideoHeartbeat 2.0.0 |
|
Chromecast | Cast プラグイン 10.0.1 | Cast リファレンス | Brightcove Receiver サンプル | Media3 1.4.1 |
プラグインの組み合わせ
Android 向けの Native SDK では、ほとんどのプラグインを組み合わせて使用できます。この サンプル アプリ では、Brightcove ExoPlayer を使用し、Google IMA 3.36.0 の広告および Widevine Modular を用いたコンテンツ保護を組み合わせる方法を紹介しています。
サンプル
Brightcove では、可能な限り BrightcoveExoPlayerVideoView
の実装を使用することを推奨しています。サンプルコードやスニペットについては、以下を参照してください。
- Brightcove Native SDK for Android のすべてのサンプル
- brightcove-exoplayer フォルダ – ExoPlayer 実装を使用したサンプル。
- brightcove-player-controls フォルダ – ExoPlayer 実装と併用できるコンセプト。
- 特定のタスクを支援するコードスニペット
以下の表には、前のセクションの統合プラグインとは別に提供されるコードサンプルへのリンクが含まれています。
サンプル アプリケーション | 説明 |
---|---|
基本サンプル | Video Cloud ライブラリから動画を再生する基本的なアプリを作成します。 |
Chromecast | Chromecast に接続された TV に動画をキャストします。概要については、Android 向け Native SDK の Cast プラグイン ドキュメントを参照してください。 |
カスタム コントロール | プレーヤーのコントロールをカスタマイズします。 |
Widevine DRM | Widevine を使用してコンテンツを保護します。Android フレームワークは、ExoPlayer Video View を使用する場合に Widevine Modular をサポートします。詳細は Widevine リファレンス を参照してください。 |
ライブストリーム | HLS ライブストリームを再生するアプリを作成します。 |
オフライン再生 | Widevine 暗号化された DASH 動画を含む動画をダウンロードして再生します。概要については、Native SDK を使用したオフライン再生 ドキュメントを参照してください。 |
リモートビデオ | リモートサーバーから動画を読み込みます。 |
ビデオリスト | RecyclerView を使用して複数の動画を管理します。 |
360° ビデオ | プロジェクションプロパティが設定されている場合に 360° ビデオを再生します。コントロールバーの 360 ビデオボタンをタップすると、VR ゴーグルモードでサイド・バイ・サイドの映像が表示されます。詳細は モバイル SDK を使用した 360° ビデオ のドキュメントを参照してください。 |
ソリューション ガイド
以下の表には、Brightcove Native SDK を使用したアプリ開発の入門ガイドや、利用可能な機能について説明する開発者向けドキュメントへのリンクが含まれています。
ガイド | 説明 |
---|---|
Brightcove Native SDK for Android のセットアップ | Brightcove Native SDK for Android の基本を学び、独自のバックエンド システムのコンテンツを使用したシンプルな動画再生アプリの開発手順を紹介します。 Video Cloud の顧客は、Brightcove カタログサービスから動画を取得して再生することも可能です。 |
プラグインの作成 | Brightcove Native SDK for Android 用のプラグインの作成方法を学びます。 |
View のレイアウト管理 | BrightcoveVideoView に追加された View のレイアウトを管理する方法を学びます。 |
画面の向き変更への対応 | 画面の向きが変わった際に発生する不要なデフォルトの動作を管理する方法を学びます。 |
IAB オープン メジャーメント | 広告の測定と検証のために、IMA プラグインと連携した Open Measurement SDK の使用方法を学びます。 |
ソースの選択 | 動画再生時のデフォルトのレンディション選択プロセスについて学びます。 |
Brightcove Analytics の活用 | Brightcove SDK for Android を使用して、モバイルアプリから Brightcove Analytics のプロパティを設定する方法を学びます。 |
プレーヤー コントロールの操作 | プレーヤー コントロールのカスタマイズや非表示の方法を学びます。 |
ベスト プラクティス
Brightcove Native SDK を使用する際に役立つ追加情報を以下にまとめました。
IMA を使用した広告
VAST 広告の配置は通常、VMAP ドキュメントによって指定されます。VAST は広告の内容を記述し、VMAP は動画内の広告配置を定義します。詳細なコードについては、以下のリンクを参照してください。
IMA 広告を使用する際は、SDK に実装する前に、広告が正常に動作することを事前に確認することが推奨されます。以下のリンクが参考になります。
コンパニオン広告
コンパニオン広告およびクリック可能な広告は、Android TV ではサポートされていません。Android TV には Web ブラウザが搭載されていないため、クリック先の URL への遷移ができないためです。
ProGuard の利用
ProGuard を使用すると、アプリのセキュリティを強化し、リバースエンジニアリングを困難にすることができます。ProGuard は Android のビルドシステムに統合されており、必要に応じて有効化または無効化できます。
Gradle で ProGuard を有効にした際にエラーが発生した場合は、以下の除外ルールを追加してください。
-dontwarn com.google.**
-dontwarn android.media.**
-keep class android.media.** { *; }
-keep class com.google.** { *; }
-keep interface com.google.** { *; }
-keep class com.google.ads.interactivemedia.** { *; }
-keep interface com.google.ads.interactivemedia.** { *; }
Brightcove Native SDK で使用される ProGuard ルールの一覧を確認するには、最新の Android 向け Native SDK をダウンロードして解凍してください。sdk フォルダ内の proguard.txt
ファイルを参照してください。
再生動作
一部の Android デバイスでは、以下のような再生動作が見られることがあります。
動画の一時停止
Samsung デバイスの Smart Pause 機能により、ユーザーが画面から目を離すと動画が自動的に一時停止されることがあります。Smart Pause 対応デバイスで動画が自動的に一時停止されるのを防ぎたい場合は、この機能を無効にすることができます。