---
title: RecvData
description: "视频流引擎客户端接收数据。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2300/armnative/kunpengcpsvideo_17_0020.html
sourcePath: /source/zh/kunpengboostkithistory/2300/armnative/kunpengcpsvideo_17_0020.html
indexId: 9701e74731b3b14668e35c43b03cf81d32ffa91d49855ba221897e1c23271eb477
---
# RecvData

#### 函数功能

视频流引擎客户端接收数据。


#### 约束说明

NA


#### 函数原型

int32_t RecvData(VMIMsgType type, uint8_t* data, uint32_t length)


#### 参数说明

| 参数名称 | 输入/输出 | 参数类型 | 参数描述 |
| --- | --- | --- | --- |
| type | 输入 | VMIMsgType | 接收数据类型，请参考VmiEngine.h中VMIMsgType枚举定义。 |
| data | 输出 | uint8\_t\* | 代表接收type类型数据buffer地址。 |
| length | 输入 | uint32\_t | 代表接收type类型数据buffer的长度。 |


#### 返回值说明

- 大于0：表示接收到type型数据的长度。
- VMI_CLIENT_RECV_ORDER_FAIL：表示接收函数执行顺序非法。
- VMI_CLIENT_RECV_MEMCPY_FAILED：表示接收函数内存拷贝失败。
- VMI_CLIENT_RECV_LENGTH_NO_MATCH：表示传入的lenghth小于实际接收到的数据长度。
- VMI_CLIENT_RECV_DATA_NULL：表示接收到的数据为空，当前无数据。
- VMI_CLIENT_RECV_INVALID_PAPAM：表示该函数传入的参数非法。


#### 调用示例

```
void Test()  
{    
    const int MAX_BUF_LEN =1048576;
    uint8_t *recvBuf = new uint8_t[MAX_BUF_LEN]; 
    while (!stopFlag) { 
        int packetLen = RecvData(VMIMsgType::AUDIO, recvBuf, MAX_BUF_LEN); 
        if (packetLen > 0) { 
            // continue recv data when there is data found 
             …
            continue; 
        } 
     }
}
```
