Vonage Video API Android SDK

Vonage Video API Android SDKを使用すると、Androidデバイス用に構築したアプリでVonage Video APIを利用したビデオセッションを使用することができます。

Vonage Video APIを使用するアプリケーションはすべて2つの部分で構成されています:

  • クライアントサイドでは、 OpenTok クライアント SDK ユーザーのブラウザやモバイルアプリ上で動作します
  • サーバーサイドでは、 OpenTok サーバー用 SDK そして、サーバー上で実行され、認証情報をクライアントに渡します。

Androidアプリを構築するためのClient SDKは「OpenTok Android SDK」であり、このSDKはアプリに必要な中核機能のほとんどを提供しています。その機能には以下が含まれます:

  • OpenTokセッションへの接続
  • セッションへのストリームの公開
  • セッション内でストリームを購読する

また、Web、iOS、Windows、macOS、Linux、React Native向けのクライアントSDKも利用可能です。すべてのOpenTokクライアントSDKは相互に連携可能です。

OpenTokのクライアント、サーバー、セッションなどの基本については、以下の ビデオAPIの基礎 ページを参照されたい。

重要な注意事項

  • Android SDK 2.35.1 以降では、Android 17(API レベル 37)に対応しています。このアップデートにより、新たに必要な権限はありません。

  • Android SDK 2.30.0+は、4KBと16KBの両方のページサイズのデバイスをサポートしています。

  • Android SDK 2.29.1 以降では、 ACCESS_NETWORK_STATE パーミッションが必要で、Android APIレベル35以上では REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 許可。完全なリストはこちらをご覧ください。 必要な権限.

  • Android SDK 2.28.0+には、最低24のAndroid APIレベルが必要です。

  • Android SDK 2.24.3+、2.25.4+、2.26.0+には、最低23のAndroid APIレベルが必要です。

  • Android SDK 2.24.0以降では、32ビットx86アーキテクチャがサポートされなくなりました。

  • APIレベル31以上を対象とするアプリケーションでは、許可が必要になりました。 READ_PHONE_STATE.全リストを見る 必要な権限.

相互運用性

OpenTok Android SDK 2.35.1 を使用して作成されたアプリは、OpenTok Client SDK のバージョン 2.33 以降を使用して作成された OpenTok アプリと相互運用可能です:

  • OpenTok.js
  • OpenTok Android SDK
  • OpenTok iOS SDK
  • OpenTok Windows SDK
  • OpenTok macOS SDK
  • OpenTok Linux SDK
  • OpenTok React Native SDK

インストール

Mavenのバージョンは https://search.maven.org/artifact/com.opentok.android/opentok-android-sdk. アーティファクトIDは "opentok-android-sdk". アプリを変更して、OpenTok Android SDK を以下からダウンロードしてください: https://search.maven.org/artifact/com.opentok.android/opentok-android-sdk.例えば:

  1. プロジェクトのbuild.gradleを編集し、以下のコード・スニペットを allprojects/repositories セクションを参照されたい:

    mavenCentral()
    
  2. アプリのbuild.gradleファイルを修正し、以下のコード・スニペットを dependencies セクションを参照されたい:

    implementation 'com.opentok.android:opentok-android-sdk:2.35.1'
    
  3. アプリのbuild.gradleファイルを修正し、以下のコード・スニペットを android セクションを参照されたい:

    Android SDK 2.28.1 以降の場合:

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }
    

    Android SDK 2.22.0 から 2.28.1 までの場合:

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
    

    Android SDK 2.22.0 より前のバージョンについては:

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    

アプリでは、OpenTok API キーを使用して生成されたセッション ID とトークンを使用する必要があります。この API キーは、にログインすることで取得できます。 Vonage Video API アカウント.

テスト目的で、ご自身のアカウントにログインすることで、セッションIDとトークンを生成することができます。 Vonage Video API アカウント. 本番環境のアプリでは、 OpenTokのサーバーサイドライブラリ.

システム要件

信頼性の高いビデオストリーミングを行うには、お使いのAndroid端末が以下の推奨スペックを満たしていることをご確認ください:

  • CPU最近のデュアルコアプロセッサ;ARM64(ARMv8)クアッドコア以上、2.0GHz以上(例:Qualcomm Snapdragon 600+シリーズ、Samsung Exynos 7シリーズ以上、Google Tensor(Pixelデバイス))。
  • GPU:Adreno 500+シリーズ(クアルコム)、Mali-G71+(ARM)、ハードウェアアクセラレーションによるビデオエンコード/デコード。
  • RAM:グループ通話やマルチタスクのために最低6GBのRAM。
  • ディスプレイより良いユーザーエクスペリエンスのための5"+。
  • バッテリー容量:長時間のビデオ通話に対応する3000mAh以上。
  • ネットワーク信頼性の高いインターネット接続。Wi-Fiまたは携帯電話で動作。

これらの推奨事項により、ビデオストリーミング時の安定した再生、CPU使用率の低下、スムーズなパフォーマンスが保証されます。

カテゴリー別の端末例:Samsung Galaxy A12、Moto G Play、Nokia G10はエントリーレベル、Google Pixel 6a、Samsung Galaxy A52/A53、OnePlus Nordはミッドレンジ、Samsung Galaxy S23/S24、Google Pixel 8 Pro、OnePlus 11はハイエンド。

ものづくりの学び

OpenTok Android SDK の使い方を学ぶには、OpenTok の ビデオチャットの基本チュートリアル.

OpenTok Android SDK を使った開発の基本を理解したら、さらに詳しい情報を得たり、OpenTok を使って Applications をカスタマイズする方法を学んだりすることができます。 開発者向けガイド.特定のAPIクラスやメソッドを調べるには OpenTok Android SDK API リファレンス.

開発者およびクライアントの要件

OpenTok Android SDK は、1 つの公開オーディオ・ビデオストリーム、1 つの購読オーディオ・ビデオストリーム、および最大 5 つの追加の購読オーディオ専用ストリームを同時にサポートしています。OpenTok Android SDK を使用して 1 つのセッションで 2 台以上のクライアントを接続するには、OpenTok Media Router を使用するセッション(メディアモードが「routed」に設定されたセッション)を作成してください。 参照 OpenTok メディアルーターとメディアモード.

SDKは高速Wi-Fiおよび4G LTEネットワークでサポートされている。

OpenTok Android SDK は、armeabi-v7a、arm64-v8a、および x86_64 アーキテクチャでサポートされています。

SDKは、バージョン2.30.0以降、4KBと16KBのページサイズデバイスの両方をサポートしています。これにより、機能が保証され、互換性が向上し、クラッシュが防止されます。詳細については このAndroidドキュメントのページサイズ.

OpenTok Android SDK は、カメラ(動画の配信用)を備え、十分な CPU およびメモリ性能を持つ Android 7.0 以降(Nougat、API レベル 24)のデバイスであれば、どのデバイスでも動作します。

アクセス許可

OpenTok Android SDK では、以下の権限を使用します:

  • android.permission.ACCESS_NETWORK_STATE -- OpenTok Android SDK では、バージョン 2.29.1 以降、この権限が必要となります。

  • android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS -- OpenTok Android SDK では、バージョン 2.29.1 以降、API レベル 35 以上において、この権限が必要です。

  • android.permission.BLUETOOTH_CONNECT -- APIレベル31以上の場合、これを有効にする必要があります。APIレベル31以上をターゲットとするAndroid SDK DefaultAudioDeviceでBluetoothデバイスを使用したい場合は、アプリでランタイムパーミッションを求めるか、アプリの設定で("Nearby devices/Bluetooth")パーミッションを手動で有効にしてください。

  • android.permission.READ_PHONE_STATE -- OpenTokのAndroid SDKは、APIレベル22以下および31以上において、この権限を要求します。

  • android.permission.CAMERA -- もしあなたのアプリがデフォルトのビデオキャプチャを使用せず、カメラにアクセスしないのであれば、この権限を削除することができます。

  • android.permission.INTERNET -- 必要だ。

  • android.permission.RECORD_AUDIO -- もしあなたのアプリがデフォルトのオーディオデバイスを使用せず、マイクにアクセスしないのであれば、この権限を削除することができます。

  • android.permission.MODIFY_AUDIO_SETTINGS -- もしあなたのアプリがデフォルトのオーディオデバイスを使用せず、マイクにアクセスしないのであれば、この権限を削除することができます。

  • android.permission.BLUETOOTH -- デフォルトのオーディオデバイスはBluetoothオーディオをサポートしています。あなたのアプリがデフォルトのオーディオデバイスを使用せず、Bluetoothを使用しない場合、この権限を削除することができます。

  • android.permission.BROADCAST_STICKY -- OpenTok Android SDKではこの権限が使用されていないことが判明したため、次回のリリースでこの権限を削除する予定です。

  • android.permission.ACCESS_LOCAL_NETWORK -- 不要です。 Android 17(API 37)では、高レベルのローカルネットワーク検出 API を制御するために、この権限が導入されました。 Vonage Video Android SDK は、WebRTC ICE ネゴシエーションに生の UDP/TCP ソケットを使用しており、これらはこの権限の対象外です。Android 17 では、この権限がなくても P2P 接続およびローカルネットワーク上の ICE 候補は正常に動作します。

これらをアプリのマニフェストに追加する必要はありません。OpenTok Android SDK が自動的に追加します。ただし、API レベル 21 以降では、特定の権限についてユーザーに確認を求める必要があります。

あなたのアプリは、必要ないこれらのパーミッションのいずれかを削除することができます。参照 この投稿 そして このAndroidドキュメント.例えば、これは android.permission.CAMERA を許可した:

<uses-permission android:name="android.permission.CAMERA" tools:node="remove"/>

プロガード規定

ProGuardの推奨構成は以下の通り:

-keeppackagenames
-keep class com.opentok.** { *; }
-keep class com.vonage.** { *; }

Android Studio 3.4 または Android Gradle プラグイン 3.4.0 以降を使用する場合、デフォルトでは、コードの縮小、難読化、および最適化が自動的に有効になります。

OpenTok Android SDK のサイズ縮小や難読化は推奨されません。

上記の設定により、OpenTok Android SDK のソースコードは必ず保持されるようになりますが、アプリのその他の部分のサイズ縮小は妨げられません。

他のライブラリとの競合を防ぐため、-keeppackagenames フラグを使用して OpenTok Android SDK のパッケージ名を保持してください。

コンパイラはデフォルトで一連の最適化を自動的に実行します。それ以外の最適化は推奨されませんが、プロジェクトの gradle.properties ファイルに以下を追加することで、追加の最適化を有効にすることは可能です。ただし、実行時の問題を回避するために、ProGuard のルールを追加で含める必要がある場合があります。

android.enableR8.fullMode=true

OpenTok Android SDK のミニファイは推奨されません。前述の最適化を使用して OpenTok Android SDK を縮小および難読化すると、警告が発生します。これらの警告は無効にする必要があります。

# Please add these rules to your existing keep rules in order to suppress warnings.
# This is generated automatically by the Android Gradle plugin.
-dontwarn org.bouncycastle.jsse.BCSSLParameters
-dontwarn org.bouncycastle.jsse.BCSSLSocket
-dontwarn org.bouncycastle.jsse.provider.BouncyCastleJsseProvider
-dontwarn org.conscrypt.Conscrypt$Version
-dontwarn org.conscrypt.Conscrypt
-dontwarn org.conscrypt.ConscryptHostnameVerifier
-dontwarn org.openjsse.javax.net.ssl.SSLParameters
-dontwarn org.openjsse.javax.net.ssl.SSLSocket
-dontwarn org.openjsse.net.ssl.OpenJSSE

参照 このAndroidドキュメント ProGuardの全体的なルールとその機能性をよりよく理解することができます。

コードサンプル

サンプルコードについては GitHub上の「vonage-video-android-sdk-samples」リポジトリ.

ドキュメントおよび詳細情報

参照 OpenTok Android SDK API リファレンス そして OpenTok 開発者ガイド.

新機能と既知の問題のリストについては リリースノート.