

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# コードを調べる
<a name="producersdk-android-writecode"></a>

[Android プロデューサーライブラリの手順](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-sdk-android.html)のこのセクションでは、コード例を調べます。

Android テストアプリケーション (`AmazonKinesisVideoDemoApp`) は、次のコードパターンを示します。
+ `KinesisVideoClient` のインスタンスを作成します。
+ `MediaSource` のインスタンスを作成します。
+ ストリーミングを開始します。を起動すると`MediaSource`、クライアントへのデータの送信が開始されます。

詳細については次のセクションで説明します。



## KinesisVideoClient のインスタンスを作成する
<a name="producersdk-android-review-code-create-client"></a>

`[createKinesisVideoClient](https://github.com/aws-amplify/aws-sdk-android/blob/main/aws-android-sdk-kinesisvideo/src/main/java/com/amazonaws/mobileconnectors/kinesisvideo/client/KinesisVideoAndroidClientFactory.java)` オペレーションを呼び出す `[KinesisVideoClient](https://github.com/aws-amplify/aws-sdk-android/blob/main/aws-android-sdk-kinesisvideo/src/main/java/com/amazonaws/kinesisvideo/client/KinesisVideoClient.java)` オブジェクトを作成します。

```
mKinesisVideoClient = KinesisVideoAndroidClientFactory.createKinesisVideoClient(
                    getActivity(),
                    KinesisVideoDemoApp.KINESIS_VIDEO_REGION,
                    KinesisVideoDemoApp.getCredentialsProvider());
```

`KinesisVideoClient` がネットワーク呼び出しを行うには、認証のために認証情報が必要です。`AWSCredentialsProvider` のインスタンスを渡します。これは、前のセクションで変更した `awsconfiguration.json` ファイルから Amazon Cognito 認証情報を読み込みます。

## MediaSource のインスタンスを作成する
<a name="producersdk-android-review-code-create-mediasource"></a>

Kinesis のビデオストリームにバイトを送信するには、データを生成する必要があります。Amazon Kinesis Video Streams は `[MediaSource](https://github.com/aws-amplify/aws-sdk-android/blob/main/aws-android-sdk-kinesisvideo/src/main/java/com/amazonaws/kinesisvideo/internal/client/mediasource/MediaSource.java)` インターフェイスを提供し、これは、データソースを示します。

例えば、Kinesis Video Streams Android ライブラリは、`MediaSource` インターフェイスの `[AndroidCameraMediaSource](https://github.com/aws-amplify/aws-sdk-android/blob/main/aws-android-sdk-kinesisvideo/src/main/java/com/amazonaws/mobileconnectors/kinesisvideo/mediasource/android/AndroidCameraMediaSource.java)` 実装を提供します。このクラスは、デバイスのカメラの 1 つからデータを読み取ります。

次のコード例 (「`[fragment/StreamConfigurationFragment.java](https://github.com/awslabs/aws-sdk-android-samples/blob/main/AmazonKinesisVideoDemoApp/src/main/java/com/amazonaws/kinesisvideo/demoapp/fragment/StreamConfigurationFragment.java)`」ファイルから) では、メディアソースの設定が作成されます。

```
private AndroidCameraMediaSourceConfiguration getCurrentConfiguration() {
return new AndroidCameraMediaSourceConfiguration(
        AndroidCameraMediaSourceConfiguration.builder()
                .withCameraId(mCamerasDropdown.getSelectedItem().getCameraId())
                .withEncodingMimeType(mMimeTypeDropdown.getSelectedItem().getMimeType())
                .withHorizontalResolution(mResolutionDropdown.getSelectedItem().getWidth())
                .withVerticalResolution(mResolutionDropdown.getSelectedItem().getHeight())
                .withCameraFacing(mCamerasDropdown.getSelectedItem().getCameraFacing())
                .withIsEncoderHardwareAccelerated(
                        mCamerasDropdown.getSelectedItem().isEndcoderHardwareAccelerated())
                .withFrameRate(FRAMERATE_20)
                .withRetentionPeriodInHours(RETENTION_PERIOD_48_HOURS)
                .withEncodingBitRate(BITRATE_384_KBPS)
                .withCameraOrientation(-mCamerasDropdown.getSelectedItem().getCameraOrientation())
                .withNalAdaptationFlags(StreamInfo.NalAdaptationFlags.NAL_ADAPTATION_ANNEXB_CPD_AND_FRAME_NALS)
                .withIsAbsoluteTimecode(false));
}
```

次のコード例 (「`[fragment/StreamingFragment.java](https://github.com/awslabs/aws-sdk-android-samples/blob/main/AmazonKinesisVideoDemoApp/src/main/java/com/amazonaws/kinesisvideo/demoapp/fragment/StreamingFragment.java)`」ファイルから) では、メディアソースの設定が作成されます。

```
mCameraMediaSource = (AndroidCameraMediaSource) mKinesisVideoClient
    .createMediaSource(mStreamName, mConfiguration);
```

## メディアソースを起動する
<a name="producersdk-android-review-code-start-mediasource"></a>

メディアソースを開始して、データを生成し、それをクライアントに送信できるようにします。次のコード例は `[fragment/StreamingFragment.java](https://github.com/awslabs/aws-sdk-android-samples/blob/main/AmazonKinesisVideoDemoApp/src/main/java/com/amazonaws/kinesisvideo/demoapp/fragment/StreamingFragment.java)` ファイルからのものです。

```
mCameraMediaSource.start();
```

