Kotlin
マルチパーティーすべてのリモートストリームを購読する
各リモートクライアントは Stream.実施する onStreamReceived / onStreamDropped:
- 新しいストリームごとに
Subscriber電話するsession.subscribe(subscriber)を添付する。subscriber.viewへの 専用セル をレイアウトしてください。
このサンプルでは 固定スロット数 (maxSubscribers):並列アレイ Subscriber?オプションのストリームID FrameLayout? セルを使用する。すべてのスロットが埋まっている場合は、製品のルールに従って無視するか置き換える。
コピー
private val maxSubscribers = 4
private val subscribers = arrayOfNulls<Subscriber>(maxSubscribers)
private val subscriberContainers = arrayOfNulls<FrameLayout>(maxSubscribers)
private val subscriberStreamIds = arrayOfNulls<String>(maxSubscribers)
override fun onStreamReceived(session: Session, stream: Stream) {
val subscriber = Subscriber.Builder(this@MainActivity, stream).build()
session.subscribe(subscriber)
addSubscriber(subscriber)
}
private fun addSubscriber(subscriber: Subscriber) {
val index = subscribers.indexOfFirst { it == null }
if (index == -1) {
Toast.makeText(
this,
"New subscriber ignored, maxSubscribers limit reached",
Toast.LENGTH_LONG
).show()
return
}
subscribers[index] = subscriber
subscriberStreamIds[index] = subscriber.stream.streamId
subscriber.setStyle(BaseVideoRenderer.STYLE_VIDEO_SCALE, BaseVideoRenderer.STYLE_VIDEO_FILL)
subscriber.subscribeToAudio = true
runOnUiThread {
subscriberContainers[index]?.removeAllViews()
subscriberContainers[index]?.addView(subscriber.view)
}
subscriberAudioEnabled[index] = true
subscriberVisible[index] = true
}
- ストリームが終了したら、その購読者のビューを削除し、スロットを解放する。
コピー
override fun onStreamDropped(session: Session, stream: Stream) {
val index = subscriberStreamIds.indexOfFirst { it == stream.streamId }
if (index == -1) return
val subscriber = subscribers[index] ?: return
runOnUiThread {
subscriberContainers[index]?.removeView(subscriber.view)
}
subscribers[index] = null
subscriberStreamIds[index] = null
subscriberVisible[index] = false
subscriberAudioEnabled[index] = true
}
でリモートオーディオを切り替えます。 subscriber.subscribeToAudio = enabled.で発信A/Vを切り替えます。 publisher.publishAudio / publisher.publishVideo.
きれいに取り壊す
出口で アンサブスクライブ 各加入者 アンパブリッシュ 出版社であれば session.disconnect().こうすることで、一部のデバイスでセッションが漏れたり、カメラやマイクがブロックされたりするのを防ぐことができます。
シンプルなマルチパーティー
Vonage Android SDKを使用したマルチパーティコールの方法をご紹介します。アプリケーションは、デバイスからオーディオ/ビデオを公開し、複数の加入者に接続することができます。
対応機種:
手順
1
はじめに2
はじめに3
新規プロジェクトの作成4
Android SDKの追加5
認証の設定6
許可を求める7
公開し、自分をアピールする8
各リモート・ストリームへのマルチパーティ・サブスクライブ9
AndroidViewでSDKビューをホストする10
アプリの実行11
結論