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 il
MediaSource
, 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.json
che 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 fornisceMediaSource
interfaccia, che rappresenta l'origine dati.
Ad esempio, la libreria per Android Kinesis Video Streams fornisce ilAndroidCameraMediaSource
implementazione delMediaSource
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 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