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.
Paso 2: Examine el código
En esta sección del procedimiento de Android Producer Library, examinará el código Java 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 comienza a enviar datos al cliente.
En las siguientes secciones presentamos más detalles.
Crear una instancia deKinesisVideoClient
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. Usted pasa en un caso deAWSCredentialsProvider
, que lee sus credenciales de Amazon Cognito delawsconfiguration.json
archivo que modificó en la sección anterior.
Crear una instancia deMediaSource
Para enviar bytes a su transmisión de vídeo de Kinesis, debe generar los datos. Amazon Kinesis Video Streams ofreceMediaSource
interfaz, que representa la fuente de datos.
Por ejemplo, la biblioteca de Android de Kinesis Video Streams proporcionaAndroidCameraMediaSource
implementación de laMediaSource
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);
Iniciar 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();
Paso siguiente
Paso 3: Ejecuta y verifica el código