Kotlin
他のクライアント・ストリームへの加入
私たちはクライアントに次のことを望んでいる。 サブスクライブ セッション内の他のクライアントのストリームにアクセスする(または表示する):
- 追加
subscriberプロパティをMainActivityクラスに追加します。publisherプロパティ):
private var subscriber: Subscriber? = null
SubscriberクラスはAndroid SDKで定義されている。これは、クライアントが他のクライアントによって公開されたストリームをサブスクライブ(表示)するために使用するオブジェクトを定義します。
- の実装を変更する。
onStreamReceived(session, stream)メソッド(SessionListenerコールバックの1つ)に、他のクライアントのセッションストリームを購読するコードを含める:
override fun onStreamReceived(session: Session, stream: Stream) {
Log.d(TAG, "onStreamReceived: New Stream Received ${stream.streamId} in session: ${session.sessionId}")
if (subscriber == null) {
val newSubscriber = Subscriber.Builder(this@MainActivity, stream).build().apply {
renderer.setStyle(
BaseVideoRenderer.STYLE_VIDEO_SCALE,
BaseVideoRenderer.STYLE_VIDEO_FILL
)
setSubscriberListener(subscriberListener)
}
session.subscribe(newSubscriber)
subscriber = newSubscriber
subscriberView = newSubscriber.view
}
}
Subscriber.Builder()指定されたStream.setSubscriberListener()ストリーム・イベントのリスナーをアタッチします。session.subscribe()は、リモートストリームへのサブスクリプションを開始する。subscriberView = newSubscriber.viewは、ビデオ・ビューをレイアウトに配置します。
- イベントを記録するには
subscriberListener以下の物件sessionListenerのMainActivity:
private val subscriberListener = object : SubscriberKit.SubscriberListener {
override fun onConnected(subscriberKit: SubscriberKit) {
Log.d(TAG, "onConnected: Subscriber connected. Stream: ${subscriberKit.stream?.streamId}")
}
override fun onDisconnected(subscriberKit: SubscriberKit) {
Log.d(TAG, "onDisconnected: Subscriber disconnected. Stream: ${subscriberKit.stream?.streamId}")
}
override fun onError(subscriberKit: SubscriberKit, opentokError: OpentokError) {
Log.e(TAG, "SubscriberKit onError: ${opentokError.message}")
}
}
他のクライアントがセッションにストリームをパブリッシュすると、このメソッドが呼び出され、Streamオブジェクトが渡されます。StreamクラスはAndroid SDKで定義されており、セッション内のオーディオ・ビデオ・ストリームを表します。
このコードは、Android SDKで定義されているSubscriberクラスのインスタンスを初期化する。このコードでは Subscriber.Builder() コンストラクターは2つのパラメーターを取る:
- このプロセスに関連付けられたAndroidアプリケーション・コンテキスト。
- Streamオブジェクト(表示したいストリーム用)
について Session.subscribe(subscriber) メソッドは、受信したストリームを購読する。
- の実装を変更する。
onStreamDropped(Session session, Stream stream)メソッド(SessionListenerコールバックのもう1つ)を呼び出します:
override fun onStreamDropped(session: Session, stream: Stream) {
Log.i(TAG, "onStreamDropped: Stream dropped with ID: ${stream.streamId}")
subscriber?.let {
subscriberView = null
subscriber = null
}
}
subscriberView = null は、ストリームがドロップされると、サブスクライバのビューを削除します。
基本的なビデオチャット
Vonage Video API プラットフォームの基本概念(ビデオ、音声、メッセージングによるユーザ間のコミュニケーション方法など)を学びます。Vonage Video API の基本的なフローを説明します。
手順
1
はじめに2
はじめに3
新規プロジェクトの作成4
Android SDKの追加5
認証の設定6
許可を求める7
セッションへの接続8
サンプルアプリのUIを調整する9
セッションへのストリームの公開10
他のクライアント・ストリームへの加入11
アプリの実行12
結論