1.x と 2.x の違い

MediaPublisher と MediaSubscriber の統一

パブリッシャーとサブスクライバーを表す MediaPublisher と MediaSubscriber を MediaChannel に統一しました。 これらの種別は接続時の設定で指定可能です。

Connection の廃止

接続を行うための Connection を廃止し、代替となる Sora オブジェクトを用意しました。 1 つの接続がパブリッシャーとサブスクライバーの 2 つのロールを持つモデルを止め、 1 つの接続につき 1 つのロールのみを割り当てるようにしました。

設定の統一

MediaOption など複数のクラスに渡っていた接続に関する設定を Configuration に統一しました。 ロールの指定も Configuration で行います。

マルチストリームの指定方法の変更

1.x ではマルチストリームの可否を MediaConnection の multistreamEnabled プロパティで指定しましたが、 2.x ではマルチストリームを行うロール グループ (Group) を追加しました。

任意の映像の送信

端末のカメラ以外の任意の映像が送信可能になりました。 VideoCapturer プロトコルを実装することで可能です。

映像フレームの加工・編集

送信される映像フレームの加工・編集が可能になりました。 加工処理を VideoFilter プロトコルに従って実装し、そのオブジェクトを MediaStream にセットすることで可能です。

ConnectionController の削除

ConnectionController を削除しました。 代替となる機能は用意していません。

外部のフレームワークの API の隠蔽

Sora iOS SDK の実装で利用している外部のフレームワーク (WebRTC ライブラリや WebSocket ライブラリなど) の API を非公開にしました。 2.x では外部の API の直接的な使用による SDK の制御が不可能になります。

プロパティ名とメソッド名の見直し

プロパティ名とメソッド名を API Design Guidelines に従って変更しました。