カメラの選択

ビデオ通話を行う場合、カメラから取得した映像を送信できます。

このとき、複数のカメラの中からキャプチャするカメラを選択することができます。

SkyWay iOS SDKでは、カメラ入力に関するAPIをCameraVideoSourceで提供しています。

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

使用可能なカメラの一覧を取得する

使用可能なカメラの一覧を取得するためには、まずCameraVideoSource.supportedCameras()を利用します。

let cameras = CameraVideoSource.supportedCameras()

カメラを選択する

使用可能なカメラを取得したら、次に使用するカメラを選択します。 supportedCamerasで返却される配列の要素から、AVDevice.Positionでカメラの位置をチェックします。

let camera = cameras.first(where: { $0.position == .front })

なお、これらの処理は以下のように1行で書くこともできます。

let camera = CameraVideoSource.supportedCameras().first(where: { $0.position == .front })

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

カメラが正常に取得できていることを確認してから、CameraVideoSource.startCapturing(with:options:)でキャプチャを開始します。

guard let camera = camera else { print("カメラの取得に失敗しました。") } try await CameraVideoSource.shared().startCapturing(with: camera, options: nil)

なお、停止したい場合は、CameraVideoSource.stopCapturing()をご利用ください。

LocalVideoStreamを作成してPublishする

CameraVideoSource.createStream()LocalVideoStream を生成します。

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

let stream = CameraVideoSource.shared().createStream() member.publish(stream, nil)