セッションへの接続
次に、Vonage Videoセッションに接続します。自分のオーディオ・ビデオストリームをセッションに公開したり、他の参加者のストリームを見たりする前に、これを行う必要があります。
- 追加
sessionプロパティをMainActivityクラスに追加します。 ステップ3):
private Session session;
Session クラスは Android SDK で定義されています。これはVonage Videoセッションを表し、セッションと対話するためのメソッドを含んでいます。
- ロギングを容易にするために
TAGプロパティの先頭にあるMainActivityクラスである:
private static final String TAG = "MainActivity";
- の中で
requestPermissions()メソッドの下に以下のコードを追加します。// initialize and connect to the sessionコメントでセッション・オブジェクトをインスタンス化し、そのconnect(token)メソッドを使用する:
initializeSession(VonageVideoConfig.APP_ID, VonageVideoConfig.SESSION_ID, VonageVideoConfig.TOKEN);
- の下にある。
requestPermissions()メソッドに以下のコードを追加する:
private void initializeSession(String appId, String sessionId, String token) {
Log.i(TAG, "appId: " + appId);
Log.i(TAG, "sessionId: " + sessionId);
Log.i(TAG, "token: " + token);
session = new Session.Builder(this, apiKey, sessionId).build();
session.setSessionListener(sessionListener);
session.connect(token);
}
このコードでは Session.Builder() でセッションオブジェクトをインスタンス化します。コンストラクタは3つのパラメータを取ります:
- このプロセスに関連付けられたAndroidアプリケーションコンテキスト
- Vonage Video APP ID
- セッションID
について Session.Builder.build() メソッドは新しい Session インスタンスを返します。
について Session.setSessionListener() メソッドは、SessionListener インターフェースを実装するオブジェクトを設定します。このインターフェイスは、セッション関連のイベントに応答して呼び出されるコールバックメソッドを含んでいます。(次のステップで実装します)。
について Session.connect() のメソッドを使用する。 session オブジェクトは、クライアントアプリケーションを Vonage Video セッションに接続します。セッションでオーディオ・ビデオ・ストリームを送受信する前(またはセッションと何らかの方法でやり取りする前)に接続する必要があります。この connect() このクライアントがセッションに接続するための認証トークンです。
- 次に
sessionListenerプロパティを追加する。以下のコードをMainActivityクラスである:
private Session.SessionListener sessionListener = new Session.SessionListener() {
@Override
public void onConnected(Session session) {
Log.d(TAG, "onConnected: Connected to session: " + session.getSessionId());
}
@Override
public void onDisconnected(Session session) {
Log.d(TAG, "onDisconnected: Disconnected from session: " + session.getSessionId());
}
@Override
public void onStreamReceived(Session session, Stream stream) {
Log.d(TAG, "onStreamReceived: New Stream Received " + stream.getStreamId() + " in session: " + session.getSessionId());
}
@Override
public void onStreamDropped(Session session, Stream stream) {
Log.d(TAG, "onStreamDropped: Stream Dropped: " + stream.getStreamId() + " in session: " + session.getSessionId());
}
@Override
public void onError(Session session, OpentokError opentokError) {
Log.e(TAG, "Session error: " + opentokError.getMessage());
}
};
- クライアントがセッションに接続すると
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
protected void onPause() {
super.onPause();
if (session != null) {
session.onPause();
}
}
@Override
protected void onResume() {
super.onResume();
if (session != null) {
session.onResume();
}
}
基本的なビデオチャット
Vonage Video API プラットフォームの基本概念(ビデオ、音声、メッセージングによるユーザ間のコミュニケーション方法など)を学びます。Vonage Video API の基本的なフローを説明します。