

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Untersuchen Sie den Code
<a name="producersdk-android-writecode"></a>

In diesem Abschnitt der [Android-Producer-Bibliotheksprozedur](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-sdk-android.html) untersuchen Sie den Beispielcode. 

Die Android-Testanwendung (`AmazonKinesisVideoDemoApp`) zeigt das folgende Codiermuster:
+ Erstellen Sie eine Instance von `KinesisVideoClient`.
+ Erstellen Sie eine Instance von `MediaSource`.
+ Das Streamen wird gestartet. Starten Sie das`MediaSource`, und es beginnt, Daten an den Client zu senden.

Die folgenden Abschnitte stellen Details bereit.



## Erstellen Sie eine Instanz von KinesisVideoClient
<a name="producersdk-android-review-code-create-client"></a>

Das `[KinesisVideoClient](https://github.com/aws-amplify/aws-sdk-android/blob/main/aws-android-sdk-kinesisvideo/src/main/java/com/amazonaws/kinesisvideo/client/KinesisVideoClient.java)`-Objekt wird durch einen Aufruf der Operation `[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)` erstellt.

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

Damit `KinesisVideoClient` auf das Netzwerk zugreifen kann, benötigt das Objekt Anmeldeinformationen zur Authentifizierung. Sie übergeben eine Instanz von`AWSCredentialsProvider`, die Ihre Amazon Cognito Cognito-Anmeldeinformationen aus der `awsconfiguration.json` Datei liest, die Sie im vorherigen Abschnitt geändert haben.

## Erstellen Sie eine Instanz von MediaSource
<a name="producersdk-android-review-code-create-mediasource"></a>

Um Bytes an Ihren Kinesis-Videostream zu senden, müssen Sie die Daten erzeugen. Amazon Kinesis Video Streams stellt die `[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)` Schnittstelle bereit, die die Datenquelle darstellt.

Die Android-Bibliothek von Kinesis Video Streams bietet beispielsweise die `[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)` Implementierung der `MediaSource` Schnittstelle. Dieser Kurs liest Daten aus einer der Kameras des Speichergeräts.

Im folgenden Codebeispiel (aus der `[fragment/StreamConfigurationFragment.java](https://github.com/awslabs/aws-sdk-android-samples/blob/main/AmazonKinesisVideoDemoApp/src/main/java/com/amazonaws/kinesisvideo/demoapp/fragment/StreamConfigurationFragment.java)`-Datei) wird die Konfiguration für die Medien-Quelle erstellt:

```
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));
}
```

Im folgenden Codebeispiel (aus der `[fragment/StreamingFragment.java](https://github.com/awslabs/aws-sdk-android-samples/blob/main/AmazonKinesisVideoDemoApp/src/main/java/com/amazonaws/kinesisvideo/demoapp/fragment/StreamingFragment.java)`-Datei) wird die Konfiguration für die Medien-Quelle erstellt:

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

## Starten Sie die Medienquelle
<a name="producersdk-android-review-code-start-mediasource"></a>

Starten Sie die Medienquelle, damit diese mit dem Erzeugen von Daten und Senden an den Client beginnen kann. Das folgende Codebeispiele stammt aus der Datei `[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();
```

