---
title: 数据定义
description: "音频输出模块输出数据结构由码流包额外信息extData、数据包大小和实际数据三部分组成。该数据通过回调函数提供给开发者，并通过VmiCmdAudio枚举中的RETURN_AUDIO_DATA命令字指定。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/240RC1/armnative/kunpengcpsvideo_16_0042.html
sourcePath: /source/zh/kunpengboostkithistory/240RC1/armnative/kunpengcpsvideo_16_0042.html
indexId: 2303fa86ef41a481ba142776f73264e1695aaa66a30699d5152f0478ec579a7379
---
# 数据定义

音频输出模块输出数据结构由码流包额外信息extData、数据包大小和实际数据三部分组成。该数据通过回调函数提供给开发者，并通过VmiCmdAudio枚举中的RETURN_AUDIO_DATA命令字指定。

使用示例如下：

```
VmiDataType module = AUDIO;
VmiCmd cmd = RETURN_AUDIO_PLAY_DATA;
AudioData audioData;
uint8_t* data = &audioData;
DataCallback(module, cmd, data, sizeof(AudioData));
```

#### AudioData定义

```
struct AudioData {
ExtDataAudio extData;               // 额外信息
uint32_t size;                      // 大小
uint8_t data[0];                    // 数据
} __attribute__((packed));
```


#### ExtDataAudio定义

```
struct ExtDataAudio {
uint32_t audioType = OPUS;              // 编码模式：OPUS/PCM
uint8_t channels = 2;                   // 声道数 1：MONO/2:STEREO(默认)
uint8_t audioBitDepth = 16;             // 采样深度 8bit/16bit(默认)
uint32_t sampleRate = 48000;            // 采样率 44100Hz/48000Hz(默认)
uint32_t sampleInterval = 10;           // 采样间隔 10ms(默认)
int64_t timestamp;                      // 音频数据时间戳 毫秒，UTC时间
} __attribute__((packed));
```
