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 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
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();