クイックスタート

この章では、 Sora iOS SDK を使ってシンプルな iOS アプリケーションを実行するまでの流れを紹介します。 この iOS アプリケーションを通じて、次の Sora iOS SDK の使い方を学べます。

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

  • 送受信する映像の描画

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

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

用意するもの

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

  • iOS 端末 (Sora iOS SDK はシミュレーターに対応していません)

  • Mac OS X と Xcode

  • CocoaPods (Swift Package Manager を利用する場合は不要)

  • Sora

サーバーについては、ここでは次の条件での運用を仮定します。 これは Sora のチュートリアル が完了した時と同様の条件です。 詳しくは Sora のドキュメントを参照してください。

  • サーバーのホスト名: "sora.example.com"

  • デモ機能: 有効

  • HTTPS を使用

  • WebSocket の接続に wss を使用

  • メディアチャネル ID: "sora"

サンプルアプリケーションをビルドする

コードを書く前に、サンプルアプリケーション SoraQuickStart をビルドして実行してみましょう。

ソースコードをダウンロードする

サンプルアプリケーションのソースコードは sora-ios-sdk-quickstart リポジトリで配布しています。 master ブランチをクローンもしくはダウンロードしてください。

ライブラリをダウンロードする

ビルドに必要なライブラリをダウンロードします。

CocoaPods を利用してダウンロードを行います。 Sora iOS SDK の Spec リポジトリをローカルの環境に登録する必要があります。 セットアップの CocoaPods を利用する を参照してください。

Spec リポジトリを登録したら、 pod install コマンドを実行してダウンロードします。 ダウンロード後に SoraQuickStart.xcworkspace が生成されるので、以降はこのファイルを開いてプロジェクトの開発を行います。

接続情報を設定する

SoraQuickStart の Xcode プロジェクトを開き、接続するサーバーのシグナリング URL とチャネル ID を ViewController.swift ファイルで指定します。

ViewController.swift:

// 接続するサーバーのシグナリング URL
let soraURL = URL(string: "wss://sora.example.com/signaling")!

// チャネル ID
let soraChannelId = "sora"

ビルドして実行する

iOS 端末をマシンに接続します (Sora iOS SDK はシミュレーターに対応していません。実機を利用してください) 。ビルドターゲットのアーキテクチャに接続した iOS 端末を選択してビルド・実行します (メニュー "Product" > "Run") 。

ビルド対象アーキテクチャの選択:

_images/build_arch.png

サーバーに接続する

アプリケーションが起動したら、 Connect ボタンをタップするとサーバーに接続します。 接続に成功するとカメラとマイクの使用許可を求めるダイアログが表示されます。 許可後、上下のビューにカメラの映像が表示されれば接続成功です。

接続できなかった場合はサーバーの URL やネットワークの状態を確認してください。 Sora サーバーに接続できない も参照してください。

実装上の注意点

再接続について

Sora と Sora iOS SDK は再接続をサポートしていません。 意図しない接続解除が発生した場合、 Sora iOS SDK が自動的に再接続を行うことはありません。 再度同一のチャネルに接続する必要があれば、新たに接続処理を行うように実装してください。

カメラのマイクの初期化

カメラとマイクはパブリッシャーの接続時に初期化されます。 Sora iOS SDK では、カメラの映像は CameraVideoCapturer が扱います。 (Info.plist にプライバシーの設定を記述しないとアプリケーションが落ちますので注意してください )。

映像データの送信の仕組み

CameraVideoCapturer が取得したカメラの映像は、配信ストリームを通じてサーバに送信されます。

サンプルアプリケーションのポイント

サンプルアプリケーションにて実装されている Sora iOS SDK 開発のポイントを以下に記載します。

  • サーバーの接続には「サーバーのシグナリング用 URL 」と「チャネル ID 」が必要。接続に関する設定を Configuration にセットする。

  • サーバーの接続は Sora オブジェクトの connect(configuration:webRTCConfiguration:handler:) を呼ぶ。

  • 映像の描画は VideoView オブジェクトが行う。 VideoView はストリームの videoRenderer プロパティにセットする。

  • 端末のカメラとマイクはパブリッシャーの接続時に初期化されて使用可能になる。

その他のサンプルコード

下記のリポジトリでその他の様々なサンプルコードを公開しています。

https://github.com/shiguredo/sora-ios-sdk-samples

© Copyright 2018-2021, Shiguredo Inc. Created using Sphinx 4.2.0