---
lang: ja
path: cookbook/android-sdk/select-devices
labels: クックブック/Android SDK/カメラの選択
metaTitle: カメラの選択 | Android SDK｜ クックブック ｜ SkyWay（スカイウェイ）
---

# カメラの選択

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

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

SkyWay Android SDK では、カメラ入力に関する API を[`CameraSource`](https://android-sdk.api-reference.skyway.ntt.com/core/core/com.ntt.skyway.core.content.local.source/-camera-source/index.html) クラスにて提供しています。

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

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

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

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

[`CameraSource.getCameras`](https://android-sdk.api-reference.skyway.ntt.com/core/core/com.ntt.skyway.core.content.local.source/-camera-source/get-cameras.html) によって、カメラ名の文字列をリストで取得できます。

```kotlin
val devices = CameraSource.getCameras(App.appContext)
```

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

フロントカメラやバックカメラのみの一覧を取得したい場合は、以下の API をご利用ください。
- [`CameraSource.getFrontCameras`](https://android-sdk.api-reference.skyway.ntt.com/core/core/com.ntt.skyway.core.content.local.source/-camera-source/get-front-cameras.html)
- [`CameraSource.getBackCameras`](https://android-sdk.api-reference.skyway.ntt.com/core/core/com.ntt.skyway.core.content.local.source/-camera-source/get-back-cameras.html)

### カメラを選択する

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

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

```kotlin
val camera = devices.first()
```

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

[`CameraSource.startCapturing`](https://android-sdk.api-reference.skyway.ntt.com/core/core/com.ntt.skyway.core.content.local.source/-camera-source/start-capturing.html)の第2引数にて、カメラを指定できます。

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

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

キャプチャを停止したい場合は[`CameraSource.stopCapturing`](https://android-sdk.api-reference.skyway.ntt.com/core/core/com.ntt.skyway.core.content.local.source/-camera-source/stop-capturing.html)をご利用ください。

### Publish可能なLocalVideoStreamを作成する

[`CameraSource.createStream`](https://android-sdk.api-reference.skyway.ntt.com/core/core/com.ntt.skyway.core.content.local.source/-video-source/create-stream.html)によって `LocalVideoStream` を生成できます。

生成した `LocalVideoStream` は `LocalRoomMember.publish` の引数に渡すことで `Publish` できます。

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