

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Examinez le code
<a name="producersdk-android-writecode"></a>

Dans cette section de la [procédure de la bibliothèque Android Producer](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-sdk-android.html), vous allez examiner l'exemple de code. 

L'application de test Android (`AmazonKinesisVideoDemoApp`) présente le modèle de codage suivant :
+ Créez une instance de `KinesisVideoClient`.
+ Créez une instance de `MediaSource`.
+ Démarrez le streaming. Démarrez le`MediaSource`, et il commence à envoyer des données au client.

Consultez les sections suivantes pour obtenir des détails.



## Créez une instance de KinesisVideoClient
<a name="producersdk-android-review-code-create-client"></a>

Vous créez l'objet `[KinesisVideoClient](https://github.com/aws-amplify/aws-sdk-android/blob/main/aws-android-sdk-kinesisvideo/src/main/java/com/amazonaws/kinesisvideo/client/KinesisVideoClient.java)` en appelant l'opération `[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)`.

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

Pour que `KinesisVideoClient` passe des appels au réseau, il a besoin des informations d'identification. Vous transmettez une instance de`AWSCredentialsProvider`, qui lit vos informations d'identification Amazon Cognito dans le `awsconfiguration.json` fichier que vous avez modifié dans la section précédente.

## Créez une instance de MediaSource
<a name="producersdk-android-review-code-create-mediasource"></a>

Pour envoyer des octets à votre flux vidéo Kinesis, vous devez produire les données. Amazon Kinesis Video Streams fournit `[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)` l'interface, qui représente la source de données.

Par exemple, la bibliothèque Android Kinesis Video Streams fournit `[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)` l'implémentation de `MediaSource` l'interface. Cette classe lit des données à partir de l'une des caméras de l'appareil.

Dans l'exemple de code suivant (provenant du fichier `[fragment/StreamConfigurationFragment.java](https://github.com/awslabs/aws-sdk-android-samples/blob/main/AmazonKinesisVideoDemoApp/src/main/java/com/amazonaws/kinesisvideo/demoapp/fragment/StreamConfigurationFragment.java)`), la configuration de la source multimédia est créée :

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

Dans l'exemple de code suivant (provenant du fichier `[fragment/StreamingFragment.java](https://github.com/awslabs/aws-sdk-android-samples/blob/main/AmazonKinesisVideoDemoApp/src/main/java/com/amazonaws/kinesisvideo/demoapp/fragment/StreamingFragment.java)`), la source multimédia est créée :

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

## Démarrez la source multimédia
<a name="producersdk-android-review-code-start-mediasource"></a>

Démarrez la source média afin qu'elle puisse commencer à générer des données et les envoyer au client. L'exemple de code suivant provient du fichier `[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();
```

