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