Examine o código - Amazon Kinesis Video Streams

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Examine o código

Nesta seção do procedimento da biblioteca de produtores do Android, você examina o código de exemplo.

O aplicativo de teste do Android (AmazonKinesisVideoDemoApp) mostra o padrão de codificação a seguir:

  • Crie uma instância de KinesisVideoClient.

  • Crie uma instância de MediaSource.

  • Inicie o streaming. Inicie oMediaSource, e ele começa a enviar dados para o cliente.

As seguintes seções fornecem detalhes.

Crie uma instância de KinesisVideoClient

Você cria um objeto KinesisVideoClient chamando a operação createKinesisVideoClient.

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

Para KinesisVideoClient fazer chamadas de rede, ele precisa de credenciais para autenticar. Você passa uma instância deAWSCredentialsProvider, que lê suas credenciais do Amazon Cognito do awsconfiguration.json arquivo que você modificou na seção anterior.

Crie uma instância de MediaSource

Para enviar bytes para seu stream de vídeo do Kinesis, você deve produzir os dados. O Amazon Kinesis Video Streams MediaSource fornece a interface, que representa a fonte de dados.

Por exemplo, a biblioteca Android do Kinesis Video Streams AndroidCameraMediaSource fornece a implementação MediaSource da interface. Essa classe lê dados de uma das câmeras do dispositivo.

No exemplo de código a seguir (do arquivo fragment/StreamConfigurationFragment.java), é criada a configuração para a origem da mídia:

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

No exemplo de código a seguir (do arquivo fragment/StreamingFragment.java), é criada a origem da mídia:

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

Inicie a fonte de mídia

Inicie a fonte de mídia para que ele possa começar a gerar dados e enviá-los ao cliente. O exemplo de código a seguir é do arquivo fragment/StreamingFragment.java:

mCameraMediaSource.start();