约束说明
- 该接口用于用户主动发送音频帧至AO输出。
- 调用该接口发送音频帧到AO输出时,必须先调用hi_mpi_ao_enable_chn接口使能对应的AO通道。
- 播音为左声道和双声道时,ai_chn需固定为0;右声道时,ai_chn为1。
- 音频帧结构体的成员变量len和virt_addr需要匹配,len代表帧长(单位:字节),virt_addr为传入的音频数据的地址。建议每次传入的数据为一帧数据,即长度len为point_num_per_frame与位宽(16bit为2字节,24bit为3字节)的乘积。
- 对长度len限制如下:首先根据len与位宽计算出数据点数(数据点数=len/位宽对应的字节数),数据点数的范围为[1, frame_num * point_num_per_frame],最大上限为4096。
- 举例1:如果frame_num=2,point_num_per_frame=480(frame_num和point_num_per_frame的范围限制可以参见结构体hi_aio_attr),此时frame_num * point_num_per_frame=960,且960<4096,那么数据点数的范围为[1, 960]。
- 举例2:如果frame_num=30,point_num_per_frame=4096,此时frame_num * point_num_per_frame=122880,且122880>4096,那么数据点数的范围为[1, 4096]。
- 举例3:如果根据frame_num和point_num_per_frame确定的数据点数范围为[1, 960]。若此时len=960,位宽为16位(即2字节),计算得到数据点数为960/2=480,在[1, 960]范围之内,即符合要求;若此时len=3840,位宽为16位(即2字节),计算得到数据点数为3840/2=1920,在[1, 960]范围之外,则会返回报错。
参数说明
参数名 |
输入/输出 |
说明 |
ao_dev |
输入 |
音频设备号,取值范围:[0, 4]。 |
ao_chn |
输入 |
音频输出通道号。 |
data |
输入 |
音频帧结构体。 |
milli_sec |
输入 |
配置发送数据的超时时间,单位是毫秒,取值范围如下:
- -1:表示阻塞模式,无数据时一直等待;
- 0:表示非阻塞模式,无数据时则报错返回;
- >0:需要配置具体的超时时间,表示超过指定时间后无数据,则报错返回。
|