Fase 2: Analisi del codice - Amazon Kinesis Video Streams

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Fase 2: Analisi del codice

In questa sezione della procedura per Android Producer Library, puoi esaminare il codice di esempio.

L'applicazione per i test di Android (AmazonKinesisVideoDemoApp) mostra il seguente modello di codifica:

  • Creare un'istanza di KinesisVideoClient.

  • Creare un'istanza di MediaSource.

  • Inizia lo streaming, ovvero avvia ilMediaSource, che inizia a inviare dati al client.

Nelle seguenti sezioni sono fornite maggiori informazioni.

Creazione di un'istanza diKinesisVideoClient

Per creare l'oggetto KinesisVideoClient, richiama l'operazione createKinesisVideoClient.

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

Per eseguire chiamate alla rete, KinesisVideoClient ha bisogno di credenziali da autenticare. Passa in un'istanza diAWSCredentialsProvider, che legge le tue credenziali Amazon Cognito dalawsconfiguration.jsonche hai modificato nella sezione precedente.

Creazione di un'istanza diMediaSource

Per inviare byte al flusso video Kinesis, devi produrre i dati. Amazon Kinesis Video Streams fornisceMediaSourceinterfaccia, che rappresenta l'origine dati.

Ad esempio, la libreria per Android Kinesis Video Streams fornisce ilAndroidCameraMediaSourceimplementazione delMediaSourceinterfaccia. Questa classe legge i dati da una delle fotocamere del dispositivo.

Nel seguente esempio di codice (dal file fragment/StreamConfigurationFragment.java), viene creata la configurazione per l'origine multimediale:

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

Nel seguente esempio di codice (dal file fragment/StreamingFragment.java), viene creata la configurazione per l'origine multimediale:

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

Avvio dell'origine multimediale

Avvia l'origine multimediale in modo che inizi a generare dati e a inviarli al client. I seguenti esempi di codice sono tratti dal file fragment/StreamingFragment.java:

mCameraMediaSource.start();

Fase successiva

Fase 3: Esecuzione e verifica del codice