クイックスタート

この章では、 Sora Android SDK を使った、シンプルなクイックスタート アプリケーションを実行するまでの流れを紹介します。 このアプリケーションを通じて、次の Sora Android SDK の使い方の基礎を学べます。

  • メディアデータ (映像と音声) の送信と受信

  • 送受信する映像の描画

  • 端末のデバイス (カメラとマイク) の使用

ソースコードは sora-android-sdk-quickstart リポジトリで配布しています。

用意するもの

バージョンなどの詳細な条件は システム条件 を参照してください。

  • Android 5 以降 (シミュレーターは不可)

  • WebRTC SFU Sora バージョン 19.10.8 以降

  • Android Studio バージョン 3.6.3 以降

  • Sora サーバ

Sora サーバについては、ここでは次の条件での運用を仮定します。 詳しくは Sora のドキュメントを参照してください。

  • Sora サーバの IP アドレス: 192.0.2.10

  • シグナリングのポート番号: 5000

  • デモ機能: 有効

  • HTTP を使用 (HTTPS ではない)

  • WebSocket の接続に ws を使用

  • チャネル ID: sora

以下、アプリケーションのダウンロード、依存ライブラリのダウンロードと配置、 アプリケーションの設定と起動の順に説明します。

クィックスタートアプリケーションのダウンロード

クイックスタートアプリケーションのソースコードは sora-android-sdk-quickstart リポジトリで配布しています。 git コマンドで最新のタグを指定してクローンしてください:

$ git clone --branch <X.Y.Z> https://github.com/shiguredo/sora-android-sdk-quickstart.git
$ cd sora-android-quickstart

SDK への依存設定

本アプリケーションは Sora Android SDK への依存を持ちます。 以下、設定方法を記します。github からクローンしたコードベースには これらの設定は入っています。

JitPack リポジトリの追加

Sora Android SDK は JitPack から取得できます。 そのため、トップレベルの build.gradle で JitPack のリポジトリを追加します。:

allprojects {
    repositories {
        jcenter()
        google()
        maven { url 'https://jitpack.io' }  // この行を追加する
    }
}

Sora Android SDK のバージョン設定

同じ build.gradle にて、SDK のバージョンを定義しておきましょう。 X.Y.Z は使用する SDK のバージョンを入れてください。最新版は 2020.3 です。:

buildscript {
    // 中略
    ext.sora_android_sdk_version = 'X.Y.Z' // この行を追加する
}

この定義は次の implementation 依存の追加で参照しますが、ここでは定義せずに、 次の設定に直書きしても構いません。

Sora Android SDK への依存を追加する

次に Sora Android SDK への依存を追加します。 SDK を利用するモジュールのビルド設定ファイル(ここでは quickstart/build.gradle )に 以下の設定を追加します。:

dependencies {
    // 中略
    // 以下の 3 行を追加する
    implementation("com.github.shiguredo:sora-android-sdk:${sora_android_sdk_version}@aar") {
        transitive = true
    }
}

以上で SDK を利用するための依存設定は完了です。

補足 transitive を指定しない場合は libwebrtc のバージョンとして 79.5.1 を指定してください。:

api "com.github.shiguredo:sora-webrtc-android:${libwebrtc_version}"

注意 libwebrtc のバージョンは Sora Android SDK のバージョンと個別に指定可能ですが、特定バージョンのみで 動作を確認しています。必ず SDK バージョンに対応する libwebrtc のバージョンを指定してください。

アプリケーションの設定

クィックスタートアプリケーションの実行には Sora サーバの URL を設定する必要があります。

そのために、アプリケーションを Android Studio で Import しましょう。そして トップレベルの /build.gradle ファイルを開きます。

このファイルでは、接続する Sora サーバのシグナリングエンドポイント URL ext.signaling_endpoint を指定します。環境に応じて設定してください。 好みでチャネル ID ext.channel_id の指定も可能です(そのままでも結構です)。

build.gradle:

buildscript {
    // [中略]

    // アプリから参照する設定項目
    ext.signaling_endpoint = "ws://192.0.2.10:5000/signaling"
    ext.channel_id         = "sora"
}

アプリケーションの起動

Android 端末をマシンに接続します。Sora Android SDK はシミュレーターに対応していません。実機を利用してください)。 そして、接続した Android 端末を選択してビルド・実行します (メニュー "Run" > "Run (quickstart)")。

Sora サーバに接続する

起動したアプリケーションの画面で、 START ボタンをタップすると Sora サーバに接続します。 接続に成功するとカメラ(あれば前面カメラ優先)の映像が表示されます。

接続できなかった場合は Sora サーバのエンドポイント URL やネットワークの状態を確認してください。

このアプリケーションでは、次のパラメータで Sora サーバに接続しています。

双方向でビデオチャットするには、例えば、PC ブラウザから Sora のデモ機能のマルチストリーム接続 を行うと、クイックスタートアプリケーションに相手側の映像が表示されます。 もちろん、Android 端末をもうひとつ用意して本アプリケーションをインストール、起動しても よいですし、iOS アプリケーションとのビデオチャットも可能です。

参考: