Kotlin

セッションへのストリームの公開

アプリがVonage Videoセッションに接続すると、カメラとマイクを使ってセッションにオーディオ・ビデオストリームを公開します:

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

PublisherクラスはAndroid SDKで定義されています。

  1. を変更する。 onConnected() コールバックを SessionListener を使ってストリームを設定し、公開する:
override fun onConnected(session: Session) {
    Log.d(TAG, "onConnected: Connected to session: ${session.sessionId}")

    publisher = Publisher.Builder(this@MainActivity).build().apply {
        setPublisherListener(publisherListener)
        renderer.setStyle(
            BaseVideoRenderer.STYLE_VIDEO_SCALE,
            BaseVideoRenderer.STYLE_VIDEO_FILL
        )
    }

    // Add the publisher view to the UI
    publisherView = publisher?.view

    // Publish the stream to the session
    session.publish(publisher)
}

上記のコードでは Publisher.Builder() を使用して、Publisher オブジェクトをインスタンス化します。コンストラクタは1つのパラメータを受け取ります。このプロセスに関連付けられたコンテキストです(ただし、本番アプリでは異なる場合があります)。

について Publisher.setPublisherListener() メソッドは PublisherListener インターフェースを実装するオブジェクトを設定します。このインターフェイスには、パブリッシャー関連のイベントに応答して呼び出されるコールバックメソッドが含まれています。

重要だ: 使用するコンテキストは、特定のユースケースによって異なります。しかし、通常は、セッションがアクティビティの外(たとえば、アクティビティとアクティビティの間)に存在することが望まれます。本番アプリケーションでは、アクティビティコンテキストではなく、アプリケーションコンテキストを使うのが便利です。

このコードでは、パブリッシャー・オブジェクトを Session.publish() メソッドを使用します。このメソッドは、Androidデバイスのカメラとマイクを使用して、オーディオ・ビデオ・ストリームをセッションに公開します。(Android仮想デバイスでは、Android SDKはストリームを公開するときにテストビデオを使用することに注意してください)。

パブリッシャ・オブジェクトは getView() を返し、Android Viewオブジェクトを返します。このビューは、デバイスのカメラからキャプチャされたビデオを表示します。このコードでは、このビューを publisherView オブジェクトがある。

  1. イベントを記録するには publisherListener プロパティを sessionListenerMainActivity:
private val publisherListener = object : PublisherKit.PublisherListener {
    override fun onStreamCreated(publisherKit: PublisherKit, stream: Stream) {
        Log.d(TAG, "onStreamCreated: Publisher Stream Created. Stream ID: ${stream.streamId}")
    }

    override fun onStreamDestroyed(publisherKit: PublisherKit, stream: Stream) {
        Log.d(TAG, "onStreamDestroyed: Publisher Stream Destroyed. Stream ID: ${stream.streamId}")
    }

    override fun onError(publisherKit: PublisherKit, opentokError: OpentokError) {
        Log.e(TAG, "PublisherKit onError: ${opentokError.message}")
    }
}

Publisher クラスは PublisherKit クラス (Android SDK で定義) を継承しています。PublisherKit クラスは、高度なパブリッシャー (カスタムビデオキャプチャやレンダラーを使用するパブリッシャーなど) を作成するために使用できる基本クラスです。

これは PublisherListener のメソッドがある:

  • onStreamCreated(publisherKit, stream) - パブリッシャーがセッションへのストリーミングを開始する時に呼ばれる。
  • onStreamDestroyed(publisherKit, stream) - パブリッシャーがセッションへのストリーミングを停止した時に呼ばれる。
  • onError(error) - クライアントがセッションへの発行に失敗したときに呼び出されます。クライアントが OpentokError オブジェクトがメソッドに渡される。

基本的なビデオチャット

Vonage Video API プラットフォームの基本概念(ビデオ、音声、メッセージングによるユーザ間のコミュニケーション方法など)を学びます。Vonage Video API の基本的なフローを説明します。

手順
1
はじめに
2
はじめに
3
新規プロジェクトの作成
4
Android SDKの追加
5
認証の設定
6
許可を求める
7
セッションへの接続
8
サンプルアプリのUIを調整する
9
セッションへのストリームの公開
10
他のクライアント・ストリームへの加入
11
アプリの実行
12
結論