Untersuchen Sie den Code - Amazon Kinesis Video Streams

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Untersuchen Sie den Code

In diesem Abschnitt der Android-Producer-Bibliotheksprozedur untersuchen Sie den Beispielcode.

Die Android-Testanwendung (AmazonKinesisVideoDemoApp) zeigt das folgende Codiermuster:

  • Erstellen Sie eine Instance von KinesisVideoClient.

  • Erstellen Sie eine Instance von MediaSource.

  • Das Streamen wird gestartet. Starten Sie dasMediaSource, und es beginnt, Daten an den Client zu senden.

Die folgenden Abschnitte stellen Details bereit.

Erstellen Sie eine Instanz von KinesisVideoClient

Das KinesisVideoClient-Objekt wird durch einen Aufruf der Operation createKinesisVideoClient erstellt.

mKinesisVideoClient = KinesisVideoAndroidClientFactory.createKinesisVideoClient( getActivity(), KinesisVideoDemoApp.KINESIS_VIDEO_REGION, KinesisVideoDemoApp.getCredentialsProvider());

Damit KinesisVideoClient auf das Netzwerk zugreifen kann, benötigt das Objekt Anmeldeinformationen zur Authentifizierung. Sie übergeben eine Instanz vonAWSCredentialsProvider, die Ihre Amazon Cognito Cognito-Anmeldeinformationen aus der awsconfiguration.json Datei liest, die Sie im vorherigen Abschnitt geändert haben.

Erstellen Sie eine Instanz von MediaSource

Um Bytes an Ihren Kinesis-Videostream zu senden, müssen Sie die Daten erzeugen. Amazon Kinesis Video Streams stellt die MediaSource Schnittstelle bereit, die die Datenquelle darstellt.

Die Android-Bibliothek von Kinesis Video Streams bietet beispielsweise die AndroidCameraMediaSource Implementierung der MediaSource Schnittstelle. Dieser Kurs liest Daten aus einer der Kameras des Speichergeräts.

Im folgenden Codebeispiel (aus der fragment/StreamConfigurationFragment.java-Datei) wird die Konfiguration für die Medien-Quelle erstellt:

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)); }

Im folgenden Codebeispiel (aus der fragment/StreamingFragment.java-Datei) wird die Konfiguration für die Medien-Quelle erstellt:

mCameraMediaSource = (AndroidCameraMediaSource) mKinesisVideoClient .createMediaSource(mStreamName, mConfiguration);

Starten Sie die Medienquelle

Starten Sie die Medienquelle, damit diese mit dem Erzeugen von Daten und Senden an den Client beginnen kann. Das folgende Codebeispiele stammt aus der Datei fragment/StreamingFragment.java.

mCameraMediaSource.start();