Fase 2: Esamina il codice - Flusso di video Amazon Kinesis

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: Esamina il 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.

  • Avvia lo streaming. Avvia ilMediaSource, e inizia a inviare i dati al client.

Nelle seguenti sezioni sono fornite maggiori informazioni.

Creazione di un'istanza di KinesisVideoClient

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. Passi un'istanza diAWSCredentialsProvider, che legge le tue credenziali di Amazon Cognito awsconfiguration.json dal file che hai modificato nella sezione precedente.

Creazione di un'istanza di MediaSource

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

Ad esempio, la libreria Android Kinesis Video Streams AndroidCameraMediaSource fornisce l'implementazione MediaSource dell'interfaccia. 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 della sorgente 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();

Approfondimenti

Passaggio 3: Esegui e verifica il codice