セッションへのストリームの公開
アプリがVonage Videoセッションに接続すると、カメラとマイクを使ってセッションにオーディオ・ビデオストリームを公開します:
- 追加
publisherプロパティをMainActivityクラスに追加します。sessionプロパティ):
private Publisher publisher;
PublisherクラスはAndroid SDKで定義されています。
- の実装を変更する。
SessionListener.onConnected()メソッドに、ストリームをセッションに公開するコードを追加します:
@Override
public void onConnected(Session session) {
Log.d(TAG, "onConnected: Connected to session: " + session.getSessionId());
publisher = new Publisher.Builder(MainActivity.this).build();
publisher.setPublisherListener(publisherListener);
publisher.getRenderer().setStyle(BaseVideoRenderer.STYLE_VIDEO_SCALE, BaseVideoRenderer.STYLE_VIDEO_FILL);
publisherViewContainer.addView(publisher.getView());
if (publisher.getView() instanceof GLSurfaceView) {
((GLSurfaceView) publisher.getView()).setZOrderOnTop(true);
}
session.publish(publisher);
}
上記のコードでは Publisher.Builder() を使用して、Publisher オブジェクトをインスタンス化します。コンストラクタは1つのパラメータを受け取ります。このプロセスに関連付けられたコンテキストです(ただし、本番アプリでは異なる場合があります)。
について Publisher.setPublisherListener() メソッドは PublisherListener インターフェースを実装するオブジェクトを設定します。このインターフェイスには、パブリッシャー関連のイベントに応答して呼び出されるコールバックメソッドが含まれています。
重要だ: 使用するコンテキストは、特定のユースケースによって異なります。しかし、通常は、セッションがアクティビティの外(たとえば、アクティビティとアクティビティの間)に存在することが望まれます。本番アプリケーションでは、アクティビティコンテキストではなく、アプリケーションコンテキストを使うのが便利です。
このコードでは、パブリッシャー・オブジェクトを Session.publish() メソッドを使用します。このメソッドは、Androidデバイスのカメラとマイクを使用して、オーディオ・ビデオ・ストリームをセッションに公開します。(Android仮想デバイスでは、Android SDKはストリームを公開するときにテストビデオを使用することに注意してください)。
パブリッシャ・オブジェクトは getView() を返し、Android Viewオブジェクトを返します。このビューは、デバイスのカメラからキャプチャされたビデオを表示します。このコードでは、このビューを publisherViewContainer オブジェクトがある。
- イベントを記録するには
publisherListenerプロパティをsessionListenerのMainActivity:
private PublisherKit.PublisherListener publisherListener = new PublisherKit.PublisherListener() {
@Override
public void onStreamCreated(PublisherKit publisherKit, Stream stream) {
Log.d(TAG, "onStreamCreated: Publisher Stream Created. Own stream " + stream.getStreamId());
}
@Override
public void onStreamDestroyed(PublisherKit publisherKit, Stream stream) {
Log.d(TAG, "onStreamDestroyed: Publisher Stream Destroyed. Own stream " + stream.getStreamId());
}
@Override
public void onError(PublisherKit publisherKit, OpentokError opentokError) {
Log.e(TAG, "PublisherKit onError: " + opentokError.getMessage());
}
};
PublisherクラスはPublisherKitクラス(これもAndroid SDKで定義されています)を継承しています。PublisherKit クラスは、高度なパブリッシャー(カスタムビデオキャプチャやレンダラーを使用するパブリッシャーなど)を作成するための基本クラスです。
これは PublisherListener のメソッドがある:
onStreamCreated(publisherKit, stream)- パブリッシャーがセッションへのストリーミングを開始する時に呼ばれる。onStreamDestroyed(publisherKit, stream)- パブリッシャーがセッションへのストリーミングを停止した時に呼ばれる。onError(error)- クライアントがセッションへの発行に失敗したときに呼び出されます。クライアントがOpentokErrorオブジェクトがメソッドに渡される。
基本的なビデオチャット
Vonage Video API プラットフォームの基本概念(ビデオ、音声、メッセージングによるユーザ間のコミュニケーション方法など)を学びます。Vonage Video API の基本的なフローを説明します。