---
title: 接口说明
description: "该接口是视频流引擎服务端对外功能接口，包括码流出流、音频播放、触控按键输入、麦克风等特性。该接口以动态链接库的形式提供，并提供头文件供开发者调用。其中每一种特性对应一种数据类型，同时对应一个组件模块。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/240RC1/armnative/kunpengcpsvideo_16_0016.html
sourcePath: /source/zh/kunpengboostkithistory/240RC1/armnative/kunpengcpsvideo_16_0016.html
indexId: 8c9a430082c237cd5c9c2a38154628e4e799d19b67a46eb13fce70c64247171979
---
# 接口说明

该接口是视频流引擎服务端对外功能接口，包括码流出流、音频播放、触控按键输入、麦克风等特性。该接口以动态链接库的形式提供，并提供头文件供开发者调用。其中每一种特性对应一种数据类型，同时对应一个组件模块。

其中，开发者与接口的交互通过配置结构体实现。各个模块的具体配置文件可基于通用配置结构体扩展。通用配置结构体中，version为当前模块版本号。

```
struct VmiConfig {
uint32_t version;                           // 设置为各个组件的当前的版本号，参见：VmiVersion结构体
} __attribute__((packed));
```

启动引擎需要的配置项为VmiConfigEngine，包含DataCallback数据回调和需要启动的模块列表。

```
struct VmiConfigEngine {
DataCallback dataCallback = nullptr;        // 用于发送服务端数据的回调
DataTypeConfig dataTypeConfig[DATA_TYPE_MAX];
} __attribute__((packed));
```

数据输出统一使用回调函数实现，不提供数据输出的函数接口。回调函数定义如下：

```
using DataCallback = int(*)(VmiDataType module, VmiCmd cmd, uint8_t *data, uint32_t size);
```

DataTypeConfig数组指明每个模块是否需要初始化，以及初始化时数据包头前需要预留的内存空间大小，便于开发者填充需要的数据。

```
struct DataTypeConfig {
bool shouldInit = false;
uint32_t sendDataOffset = 0;                // 通过回调函数发送数据时，在数据头预留的空间，单位为Byte
} __attribute__((packed));
```
