カメラの選択
ビデオ通話を行う際にはカメラから映像をキャプチャして送信しますが、スマートフォンに複数のカメラが存在する場合、キャプチャ対象のカメラを指定する必要があります。
アプリが特定の条件に基づいて自動的に選択することもあれば、エンドユーザーが 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
を生成できます。
生成した LocalVideoStream
は LocalRoomMember.publish
の引数に渡すことで Publish
できます。
val stream = CameraSource.createStream() member.publish(stream)