步骤 2:检查代码 - Amazon Kinesis Video Streams
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

步骤 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();

后续步骤

步骤 3:运行并验证代码