View a markdown version of this page

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 a partir 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 fornece a MediaSource interface, que representa a fonte de dados.

Por exemplo, a biblioteca Kinesis Video Streams para Android fornece a AndroidCameraMediaSource implementação da MediaSource 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();