カメラの選択

ビデオ通話を行う際にはカメラから映像をキャプチャして送信しますが、スマートフォンに複数のカメラが存在する場合、キャプチャ対象のカメラを指定する必要があります。

アプリが特定の条件に基づいて自動的に選択することもあれば、エンドユーザーが UI から指定できるようにしたいこともあります。

SkyWay Android SDK では、カメラ入力に関する API をCameraSource クラスにて提供しています。

このクラスを利用することで、カメラの一覧を取得して、指定のカメラで映像をキャプチャできます。

カメラを選択して映像をキャプチャする手順

カメラのリストを取得する

まず、SkyWay Android SDK で利用可能なカメラの一覧を取得します。

CameraSource.getCameras によって、カメラ名の文字列をリストで取得できます。

val devices = CameraSource.getCameras(App.appContext)

なお、カメラ名は数値文字列になっていることもあります。

フロントカメラやバックカメラのみの一覧を取得したい場合は、以下の API をご利用ください。

カメラを選択する

SkyWay の API に渡すカメラを選択します。

ここでは、リストの先頭の要素を取り出します。必要に応じてカメラ名や向きによる選択を行ってください。

val camera = devices.first()

カメラから映像をキャプチャする

CameraSource.startCapturingの第2引数にて、カメラを指定できます。

このメソッドを実行すると、カメラから映像のキャプチャを開始します。

CameraSource.startCapturing( App.appContext, camera, CameraSource.CapturingOptions(800, 800) )

キャプチャを停止したい場合はCameraSource.stopCapturingをご利用ください。

Publish可能なLocalVideoStreamを作成する

CameraSource.createStreamによって LocalVideoStream を生成できます。

生成した LocalVideoStreamLocalRoomMember.publish の引数に渡すことで Publish できます。

val stream = CameraSource.createStream() member.publish(stream)