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

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 ilMediaSource, 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();