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 il
MediaSource
, 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