

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

# 编写并检查代码
<a name="producersdk-javaapi-writecode"></a>

在 [Java 生产者库过程](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-sdk-javaapi.html)的这一部分中，您将编写并检查在上一节中下载的 Java 示例代码。

Java 测试应用程序 ([https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-java/blob/master/src/main/demo/com/amazonaws/kinesisvideo/demoapp/DemoAppMain.java](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-java/blob/master/src/main/demo/com/amazonaws/kinesisvideo/demoapp/DemoAppMain.java)) 会显示以下编码模式：
+ 创建 `KinesisVideoClient` 的实例。
+ 创建 `MediaSource` 的实例。
+ 将 `MediaSource` 注册到客户端。
+ 开始流式处理。启动`MediaSource`，它就会开始向客户端发送数据。

以下各节提供了详细信息。



## 创建的实例 KinesisVideoClient
<a name="producersdk-javaapi-review-code-create-client"></a>

您可以通过调用 `KinesisVideoClient` 操作来创建 `createKinesisVideoClient` 对象。

```
final KinesisVideoClient kinesisVideoClient = KinesisVideoJavaClientFactory
    .createKinesisVideoClient(
        Regions.US_WEST_2,
        AuthHelper.getSystemPropertiesCredentialsProvider());
```

`KinesisVideoClient` 需要凭证以进行身份验证，才能进行网络调用。您将传入一个 `SystemPropertiesCredentialsProvider` 实例，它会读取凭证文件中默认配置文件的 `AWSCredentials`：

```
[default]
aws_access_key_id = ABCDEFGHIJKLMOPQRSTU
aws_secret_access_key = AbCd1234EfGh5678IjKl9012MnOp3456QrSt7890
```





## 创建的实例 MediaSource
<a name="producersdk-javaapi-review-code-create-mediasource"></a>

要向 Kinesis 视频流发送字节，必须生成数据。Amazon Kinesis Video Streams 提供了`MediaSource`代表数据源的接口。

例如，Kinesis Video Streams Java 库提供了`ImageFileMediaSource`该接口的实现`MediaSource`。该类仅从一系列媒体文件中读取数据，而不是 Kinesis 视频流，但你可以用它来测试代码。

```
final MediaSource bytesMediaSource = createImageFileMediaSource();
```

## MediaSource 向客户端注册
<a name="producersdk-javaapi-review-code-register-mediasource"></a>

将您创建的媒体源注册到 `KinesisVideoClient`，使其能够识别该客户端 (并且可向客户端发送数据)。

```
kinesisVideoClient.registerMediaSource(mediaSource);
```



## 启动媒体源
<a name="producersdk-javaapi-review-code-start-mediasource"></a>

启动媒体源，使其可以开始生成数据并将其发送到客户端。

```
bytesMediaSource.start();
```

