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 o
MediaSource
, 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();