Kotlin

他のクライアント・ストリームへの加入

私たちはクライアントに次のことを望んでいる。 サブスクライブ セッション内の他のクライアントのストリームにアクセスする(または表示する):

  1. 追加 subscriber プロパティをMainActivityクラスに追加します。 publisher プロパティ):
private var subscriber: Subscriber? = null

SubscriberクラスはAndroid SDKで定義されている。これは、クライアントが他のクライアントによって公開されたストリームをサブスクライブ(表示)するために使用するオブジェクトを定義します。

  1. の実装を変更する。 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 は、ビデオ・ビューをレイアウトに配置します。
  1. イベントを記録するには subscriberListener 以下の物件 sessionListenerMainActivity:
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) メソッドは、受信したストリームを購読する。

  1. の実装を変更する。 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
結論