Overview

This page has not been translated yet.

SkyWay Android SDK(以下、Android SDK)は Android デバイス用のアプリケーションから SkyWay を利用するための SDK です。 Android のネイティブなアプリケーションに SkyWay を組み込むことで、デバイス同士やブラウザとのリアルタイム通信を実現できます。

このセクションでは、Android SDK の動作環境や入手方法を掲載しています。 Android SDK の採用を検討する際の参考情報としてください。

対応環境

項目SkyWay Android SDKの対応状況
OSAndroid 6.0 Mashmallow(API Level 23)以降
CPUアーキテクチャarm64-v8a、x86_64
推奨するIDEAndroid Studio

※原則として、一般のスマートフォン上での動作、またはエミュレータによる動作検証を想定しています。

アプリケーション開発言語

  • Kotlin

Kotlin は Android アプリケーション開発の公式でサポート言語であり(2023年現在)、Android Studio のような開発環境で利用できます。

配布ライブラリ

Android SDK は .aar 形式のいくつかのライブラリで構成されており、ご利用いただく場合は以下の3つのケースからお選びください。

  • Room ライブラリ
  • Core ライブラリ
  • Core + プラグインライブラリ

Room

  • SkyWay の全機能を利用できるライブラリ
    • P2P Room と SFU Room の 2 種類の Room があり、どちらかを選択して利用できます
    • P2P Room は少人数向け
      • 上限人数に制限はありませんが、ユーザーが快適に通話できる人数は 4 人までです
    • SFU Room は多人数向け
      • SFU サーバーを経由してメディア通信を行います
  • Core と SFU Bot を組み合わせたラッパーライブラリです

Core

  • SkyWay の各種ライブラリについて詳細な制御を行いたい場合に利用するライブラリ
    • プラグインによる機能拡張が可能
  • 現在存在するプラグインは SFU Bot のみ
    • プラグインを利用しない場合は P2P 通信のみ可能

SFU Bot

  • Core ライブラリで SFU Bot を利用するためのプラグインライブラリ

Room ライブラリは SkyWay の全機能を利用できますが、 Core ライブラリと SFU Bot ライブラリを用いることでさらに細かな制御を行うことができます。例えば少人数の場合は P2P でメディア通信を行い、一定以上の人数が入室した際に自動的に SFU の利用に切り替える、などといったユースケースに対応できます。

しかし、多くのユースケースでは Room で簡単に実装できるため、まずは Room ライブラリを検討することをお勧めします。

Room ライブラリの仕様

Room ライブラリを使って SkyWay を利用する上で理解する必要のある基本的な仕様について説明します。

Room

通話を行うグループの単位であり、ユーザーは共通の Room に参加したユーザー同士で通話を行います。 Room に参加しているユーザーのことを Member と呼びます。

Stream

Room 上で送受信できるメディアのことを Stream といいます。以下の 3 種類の Stream を利用できます。

  • AudioStream
    • ユーザーのマイク音声など
  • VideoStream
    • ユーザーのカメラ映像など
  • DataStream
    • 任意のメッセージ
    • SFU-Room では利用できません

Publish

Member が Stream を Room に公開することを Publish といいます。

Stream を Publish すると Room 上に Stream に対応する Publication というリソースが作成されます。

Subscribe

Member が Room 上の Publication を受信することを Subscribe といいます。

Subscribe をすると Room 上に Subscription というリソースが作成されます。

Publication を Subscribe した Member は Subscription を通じて Stream にアクセスし映像や音声を受信できます。

SkyWay Auth Token

SkyWay Auth Token は、SkyWay を利用するために必要な JWT(JSON Web Token)形式のトークンです。

ユーザー毎に権限を細かく設定することでき、例えば Room ごとの入室を特定ユーザーに制限する、といったことができます。

SkyWay Auth Token を利用するためには、これを払い出すアプリケーションサーバーを構築する必要があります。SkyWay SDK を利用したクライアントアプリは、アプリケーションサーバーから SkyWay Auth Token を取得し、これを用いて各種 SkyWay の機能を利用します。

なお、サーバーを構築せずにフロントエンドで SkyWay Auth Token を生成した場合、シークレットキーをエンドユーザーが取得できるため、権限の制限が機能せず注意する必要があります。

Core ライブラリの仕様

Core ライブラリを使って SkyWay を利用する上で理解する必要のある基本的な仕様について説明します。 Room ライブラリを使う場合は基本的に、この仕様について把握する必要はありません。

Channel

通話を行うグループの単位であり、ユーザーは共通の Channel に参加したユーザー同士で通話を行います。 Channel に参加しているユーザーのことを Person といいます。 Channel には Person の他に、SkyWay の Core ライブラリの機能を拡張する Bot が参加できます。

Bot

Bot は Channel に参加して、SkyWay の Core ライブラリの機能を拡張します。 現在以下の Bot が存在します。

  • SFU Bot

Stream

Channel 上で送受信できるメディアのことを Stream といいます。以下の 3 種類の Stream を利用できます。

  • AudioStream
    • ユーザーのマイク音声など
  • VideoStream
    • ユーザーのカメラ映像など
  • DataStream
    • 任意のメッセージ
    • SFU Bot では利用できません

Publish

Stream を Channel に公開することを Publish といいます。

Stream を Publish すると Channel 上に Stream に対応する Publication というリソースが作成されます。

Subscribe

Channel 上の Publication を受信することを Subscribe といいます。

Subscribe をすると Channel 上に Subscription というリソースが作成されます。

Publication を Subscribe したユーザーは Subscription を通じて Stream にアクセスし映像や音声を受信できます。

SDK のダウンロード

GitHub Packages と GitHub のリリースにて配布を行なっています。

GitHub Packages

以下のリポジトリで Maven Package を公開しています。

settings.gradle へリポジトリの参照を情報を以下のように記述し、build.gradle へ依存関係を記述してください。

maven { url = uri("https://maven.pkg.github.com/skyway/android-sdk") credentials { username = 'Your GitHub username' password = 'Your Github access token' } }

GitHub のリリース

以下のリポジトリでリリースノートと AAR ライブラリを公開しています。

ダウンロード後、プロジェクトのライブラリフォルダに配置してください。

詳しい導入方法についてはクイックスタートもご参照ください。

旧Android SDK(skyway.aar)との互換性と共存

互換性はありません。

また、1つのアプリで新旧 SDK を共存することはできません。