---
title: 数据注入
description: "输入与输出不同，所有的输入都需要使用InjectData接口进行数据注入。该数据开发者通过InjectData注入到服务端，并通过VmiCmdTouch枚举中的SEND_TOUCH_EVENT、SEND_KEY_EVENT命令字指定。示例如下："
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/240RC1/armnative/kunpengcpsvideo_16_0054.html
sourcePath: /source/zh/kunpengboostkithistory/240RC1/armnative/kunpengcpsvideo_16_0054.html
indexId: a1dca532b2316876284aca0ac783bae4614d49847efe788ab052c23a98b9b2f979
---
# 数据注入

输入与输出不同，所有的输入都需要使用InjectData接口进行数据注入。该数据开发者通过InjectData注入到服务端，并通过VmiCmdTouch枚举中的SEND_TOUCH_EVENT、SEND_KEY_EVENT命令字指定。示例如下：

```
VmiDataType module = TOUCH;
VmiCmd cmd = SEND_TOUCH_EVENT;
VmiTouchInputData touchData;
uint8_t* data = &touchData;
InjectData(module, cmd, data, sizeof(VmiTouchInputData));
VmiDataType module = TOUCH;
VmiCmd cmd = SEND_KEY_EVENT;
VmiKeyInputData keyData;
uint8_t* data = &keyData;
InjectData(module, cmd, data, sizeof(VmiKeyInputData));
```

服务端会处理 ACTION_DOWN, ACTION_POINTER_DOWN, ACTION_UP, ACTION_POINTER_UP, ACTION_MOVE 和 ACTION_CANCEL 事件。当服务端接收到 ACTION_CANCEL 事件时，会释放所有的触点；当服务端接收到 ACTION_DOWN 事件时，会先释放所有的触点，然后在注入 ACTION_DOWN 事件。服务端没有处理 ACTION_OUTSIDE 事件，因为当用户点击视频流客户端 view 外的屏幕时才会收到 ACTION_OUTSIDE 事件（注意这里不是从 view 内滑动到 view 外），这里的数据时无效的，不需要向服务端发送该数据。


当用户从视频流客户端 view 里面滑动到 view 外面，然后再抬起时，客户端会向服务端发送 UP 事件，但由于坐标不在视频流客户端 view 范围内，服务端会拦截并丢弃该数据，导致触点未释放。开发人员需要处理这种情况，推荐方法是将不在视频流客户端 view 内的坐标设置为视频流客户端 view 的边界值。
