本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
檢查代碼
在 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();