本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
步骤 2:检查代码
在 Android 创建者库过程的这一部分中,需要检查示例代码。
Android 测试应用程序 (AmazonKinesisVideoDemoApp
) 显示以下编码模式:
-
创建
KinesisVideoClient
的实例。 -
创建
MediaSource
的实例。 -
开始流式处理。启动
MediaSource
,它就会开始向客户端发送数据。
以下各节提供了详细信息。
创建的实例 KinesisVideoClient
您可以通过调用 KinesisVideoClient
操作来创建 createKinesisVideoClient
对象。
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 安卓库提供了AndroidCameraMediaSource
该接口的实现MediaSource
。此类从设备的某个摄像头读取数据。
下面的代码示例 (摘自 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();