文档
注册
评分
提单
论坛
小AI

hi_mpi_ao_send_frame

Atlas 200/300/500 推理产品,不支持该接口。

Atlas 训练系列产品,不支持该接口。

Atlas 推理系列产品(Ascend 310P处理器),不支持该接口。

Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。

函数功能

发送AO音频帧。

约束说明

  • 该接口用于用户主动发送音频帧至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]范围之外,则会返回报错。

函数原型

hi_s32 hi_mpi_ao_send_frame(hi_audio_dev ao_dev, hi_ao_chn ao_chn, const hi_audio_frame *data, hi_s32 milli_sec);

参数说明

参数名

输入/输出

说明

ao_dev

输入

音频设备号,取值范围:[0, 4]。

ao_chn

输入

音频输出通道号。

data

输入

音频帧结构体。

milli_sec

输入

配置发送数据的超时时间,单位是毫秒,取值范围如下:

  • -1:表示阻塞模式,无数据时一直等待;
  • 0:表示非阻塞模式,无数据时则报错返回;
  • >0:需要配置具体的超时时间,表示超过指定时间后无数据,则报错返回。

返回值说明

参考资源

接口调用流程,参见音频获取&音频播放

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词