Examinez le code - Amazon Kinesis Video Streams

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

Dans cette section de la procédure de la bibliothèque Android Producer, 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 leMediaSource, et il commence à envoyer des données au client.

Consultez les sections suivantes pour obtenir des détails.

Créez une instance de KinesisVideoClient

Vous créez l'objet KinesisVideoClient en appelant l'opération createKinesisVideoClient.

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 deAWSCredentialsProvider, 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

Pour envoyer des octets à votre flux vidéo Kinesis, vous devez produire les données. Amazon Kinesis Video Streams fournit MediaSource l'interface, qui représente la source de données.

Par exemple, la bibliothèque Android Kinesis Video Streams fournit AndroidCameraMediaSource 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), 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), la source multimédia est créée :

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

Démarrez la source multimédia

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 :

mCameraMediaSource.start();