檢查代碼 - Amazon Kinesis Video Streams

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

檢查代碼

Android 生產者庫過程的這一部分中,您將檢查示例代碼。

Android 測試應用程式 (AmazonKinesisVideoDemoApp) 顯示以下編碼模式:

  • 建立 KinesisVideoClient 的執行個體。

  • 建立 MediaSource 的執行個體。

  • 開始串流。啟動MediaSource,然後開始將資料傳送至用戶端。

下列各節將詳細說明。

建立執行個體 KinesisVideoClient

您呼叫 createKinesisVideoClient 操作建立 KinesisVideoClient 物件。

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

如果要讓 KinesisVideoClient 進行網路呼叫,需要可驗證的登入資料。您傳入的執行個體AWSCredentialsProvider,該執行個體會從您在上一節中修改的awsconfiguration.json檔案讀取 Amazon Cognito 登入資料。

建立執行個體 MediaSource

若要將位元組傳送至 Kinesis 視訊串流,您必須產生資料。Amazon Kinesis Video Streams 提供代表資料來源的MediaSource介面。

例如,Kinesis Video Streams Android 程式庫提供MediaSource介面的AndroidCameraMediaSource實作。此類別讀取其中一個裝置攝影機的資料。

在以下程式碼範例 (來自 fragment/StreamConfigurationFragment.java 檔案) 中,將建立媒體資源的組態:

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

在以下程式碼範例 (來自 fragment/StreamingFragment.java 檔案) 中,將建立媒體資源:

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

啟動媒體來源

開啟媒體來源,以開始產生資料並傳送到用戶端。以下是來自 fragment/StreamingFragment.java 檔案的程式碼範例:

mCameraMediaSource.start();