.. _multistream: ###################### マルチストリーム機能 ###################### 概要 ==== マルチストリーム機能とは、1 つのピア接続で複数のストリームを管理する機能です。 詳しくは `Sora ドキュメント `_ を参照してください。 マルチストリーム機能を有効にする =================================== Sora にマルチストリーム機能で接続するには、 ``Configuration`` オブジェクトの生成時に ``multistreamEnabled`` 引数に ``true`` を指定します。 1 つの接続で送信と受信の両方を行うのであれば、ロールに ``.sendrecv`` を指定します。 接続例:: let config = Configuration(url: url, channelId: channelId, role: .sendrecv, multistreamEnabled: true) // ストリームが追加されたときに行う処理です。 config.mediaChannelHandlers.onAddStream = { [weak self] stream in ... } // ストリームが削除されたときに行う処理です。 config.mediaChannelHandlers.onRemoveStream = { [weak self] error in ... } Sora.shared.connect(configuration: config) { ... } マルチストリーム機能で接続すると、同一のチャネル ID に接続されているすべてのストリームが ``MediaChannel`` に追加されます。 同一のチャネル ID のストリームが増減すると ``MediaChannel`` が保持するストリームも増減します。 ストリームが追加されると ``MediaChannel`` のイベントハンドラ ``MediaChannelHandlers.onAddStreamHandler`` が、削除されると ``onRemoveStreamHandler`` が呼ばれます。 映像を描画するには、各ストリームにそれぞれ ``VideoRenderer`` をセットします。 イベントハンドラを利用して映像ビューを用意するとよいでしょう。