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