Examine el código - Amazon Kinesis Video Streams

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Examine el código

En esta sección del procedimiento de la biblioteca de productores de Android, examinarás el código de ejemplo.

La aplicación de prueba de Android (AmazonKinesisVideoDemoApp) muestra el siguiente patrón de codificación:

  • Cree una instancia de KinesisVideoClient.

  • Cree una instancia de MediaSource.

  • Inicie el streaming. Inicie el MediaSource y empezará a enviar datos al cliente.

En las siguientes secciones presentamos más detalles.

Crea una instancia de KinesisVideoClient

Puede crear el objeto KinesisVideoClient llamando a la operación createKinesisVideoClient.

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

Para que KinesisVideoClient realice llamadas de red, necesita credenciales de autenticación. Pasa una instancia deAWSCredentialsProvider, que lee sus credenciales de Amazon Cognito del awsconfiguration.json archivo que modificó en la sección anterior.

Cree una instancia de MediaSource

Para enviar bytes a la transmisión de vídeo de Kinesis, debe generar los datos. Amazon Kinesis Video Streams proporciona MediaSource la interfaz, que representa la fuente de datos.

Por ejemplo, la biblioteca de Android de Kinesis Video Streams proporciona AndroidCameraMediaSource la implementación de MediaSource la interfaz. Esta clase lee los datos de una de las cámaras del dispositivo.

En el siguiente ejemplo de código (del archivo fragment/StreamConfigurationFragment.java), se crea la configuración del origen multimedia:

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

En el siguiente ejemplo de código (del archivo fragment/StreamingFragment.java), se crea el origen multimedia:

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

Inicie la fuente multimedia

Inicie el origen de medios para que pueda comenzar a generar los datos y enviarlos al cliente. El siguiente ejemplo de código procede del archivo fragment/StreamingFragment.java:

mCameraMediaSource.start();