

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

# 使用 C\+\+ 制作人库
<a name="producer-sdk-cpp"></a>

你可以使用 Amazon Kinesis Video Streams 提供的 C\+\+ 制作器库来编写应用程序代码，将媒体数据从设备发送到 Kinesis 视频流。

## 物体模型
<a name="producer-sdk-cpp-objectmodel"></a>

C\+\+ 库提供了以下对象来管理向 Kinesis 视频流发送数据：
+ **KinesisVideoProducer:** 包含有关您的媒体来源和 AWS 凭据的信息，并维护回调以报告 Kinesis Video Streams 事件。
+ **KinesisVideoStream:** 代表 Kinesis 视频流。包含有关视频流参数的信息，例如名称、数据保留期和媒体内容类型。

## 将媒体放入直播中
<a name="producer-sdk-cpp-putframe"></a>

您可以使用 C\+\+ 库提供的方法（例如`PutFrame`）将数据放入`KinesisVideoStream`对象中。随后，该库将管理数据的内部状态，这可包含以下任务：
+ 执行身份验证。
+ 监视网络延迟。如果延迟太高，库可能会选择丢弃帧。
+ 跟踪正在进行的流式处理的状态。

## 回调接口
<a name="producer-sdk-cpp-callbacks"></a>

此层公开一组回调接口，使其能够与应用程序层进行通信。这些回调接口包括：


+ **服务回调 interface (`CallbackProvider`)：**该库在创建流、获取流描述和删除流时调用通过此接口获取的事件。
+ **客户端就绪状态或低存储事件接口 (`ClientCallbackProvider`)：**当客户端准备就绪或检测到可用存储空间或内存可能用完时，库会在此接口上调用事件。
+ **流事件回调接口 (`StreamCallbackProvider`)：**当直播事件发生时，该库会调用此接口上的事件，例如直播进入就绪状态、丢帧或直播错误。

Kinesis Video Streams 为这些接口提供了默认实现。您也可以提供自己的自定义实现，例如，如果您需要自定义网络逻辑或想要向用户界面公开低存储条件。

有关制作器库中回调的更多信息，请参阅[制作人 SDK 回调](producer-reference-callbacks.md)。

## 步骤：使用 C\+\+ 制作器 SDK
<a name="producer-sdk-cpp-using"></a>

此过程演示如何在 C\+\+ 应用程序中使用 Kinesis Video Streams 客户端和媒体源向你的 Kinesis 视频流发送数据。

该过程包括以下步骤：

**Topics**