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à.
Esamina il codice
In questa sezione della procedura della libreria Android Producer, si esamina 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 dati al client.
Nelle seguenti sezioni sono fornite maggiori informazioni.
Crea 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.
Crea 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);
Avvia la 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();