セッションへの接続
次に、Vonage Videoセッションに接続します。自分のオーディオ・ビデオストリームをセッションに公開したり、他の参加者のストリームを見たりする前に、これを行う必要があります。
- 追加
sessionプロパティを追加しました:
private var session: Session? = null
Session クラスは Android SDK で定義されています。これはVonage Videoセッションを表し、セッションと対話するためのメソッドを含んでいます。
- ロギングを容易にするために
TAGプロパティの先頭にあるMainActivityクラスである:
companion object {
private const val TAG = "MainActivity"
}
- 拡大する
initializeSession()関数で3つのパラメータを受け取り、セッションを初期化し、いくつかの簡単なログを追加します:
private fun initializeSession(appId: String, sessionId: String, token: String) {
Log.i(TAG, "appId: $appId")
Log.i(TAG, "sessionId: $sessionId")
Log.i(TAG, "token: $token")
session = Session.Builder(this, appId, sessionId).build().apply {
setSessionListener(sessionListener)
connect(token)
}
}
このコードでは Session.Builder() でセッションオブジェクトをインスタンス化します。コンストラクタは3つのパラメータを取ります:
- このプロセスに関連付けられたAndroidアプリケーションコンテキスト
- Vonage Video APP ID
- セッションID
について Session.Builder.build() メソッドは新しい Session インスタンスを返します。
について Session.setSessionListener() メソッドは、SessionListener インターフェースを実装するオブジェクトを設定します。このインターフェイスは、セッション関連のイベントに応答して呼び出されるコールバックメソッドを含んでいます。(次のステップで実装します)。
について Session.connect() のメソッドを使用する。 session オブジェクトは、クライアントアプリケーションを Vonage Video セッションに接続します。セッションでオーディオ・ビデオ・ストリームを送受信する前(またはセッションと何らかの方法でやり取りする前)に接続する必要があります。この connect() このクライアントがセッションに接続するための認証トークンです。
- の使い方を更新する。
initializeSession()最後のステップで変更したメソッドには、以下のコードを使用する:
initializeSession(VonageVideoConfig.APP_ID, VonageVideoConfig.SESSION_ID, VonageVideoConfig.TOKEN)
- 次に
sessionListenerプロパティを追加する。以下のコードをMainActivityクラスである:
private val sessionListener = object : Session.SessionListener {
override fun onConnected(session: Session) {
Log.d(TAG, "onConnected: Connected to session: ${session.sessionId}")
}
override fun onDisconnected(session: Session) {
Log.d(TAG, "onDisconnected: Disconnected from session: ${session.sessionId}")
}
override fun onStreamReceived(session: Session, stream: Stream) {
Log.d(TAG, "onStreamReceived: New Stream Received ${stream.streamId} in session: ${session.sessionId}")
}
override fun onStreamDropped(session: Session, stream: Stream) {
Log.d(TAG, "onStreamDropped: Stream Dropped: ${stream.streamId} in session: ${session.sessionId}")
}
override fun onError(session: Session, opentokError: OpentokError) {
Log.e(TAG, "Session error: ${opentokError.message}")
}
}
- クライアントがセッションに接続すると
SessionListener.onConnected(session)メソッドが呼び出される。 - クライアントがセッションから切断されると、実装されている
SessionListener.onDisconnected(session)メソッドが呼び出される。 - クライアントがセッションへの接続に失敗した場合、実装されている
SessionListener.onError(session, error)メソッドが呼び出される。 - 他のクライアントがセッションにストリームをパブリッシュするとき、実装の
SessionListener.onStreamReceived(session, stream)メソッドが呼び出される。 - 他のクライアントがセッションへのストリームのパブリッシュを止めたとき、実装の
SessionListener.onStreamDropped(session, stream)メソッドが呼び出される。
今のところ、これらのイベントが発生すると、アプリはデバッガー・コンソールにプリントする。
アプリケーションをデバッグします。アプリがVonage Videoセッションに正常に接続されると SessionListener.onConnected(session) メソッドはデバッグコンソールにログを記録する。
- 以下のメソッドを
MainActivityクラスを使用して、アクティビティのライフサイクルイベントをセッションに通知します:
override fun onPause() {
super.onPause()
session?.onPause()
}
override fun onResume() {
super.onResume()
session?.onResume()
}
基本的なビデオチャット
Vonage Video API プラットフォームの基本概念(ビデオ、音声、メッセージングによるユーザ間のコミュニケーション方法など)を学びます。Vonage Video API の基本的なフローを説明します。