随风

随风

2个粉丝

4

问答

0

专栏

2

资料

随风  发布于  2025-09-26 09:06:17
采纳率 25%
4个问答
266

Hi3516CV610 内置声卡使用问题

按官方例程将对应的初始化代码移植到自己的应用中,编译没有问题,运行时“himpi_ao_enable_chn()”提示音频输出通道无效。是哪里有配置不对吗?
代码:
void init()
{
hi_s32 ret;
hi_audio_dev ao_dev_id;
hi_ao_chn ao_chn_cnt = 0;
/**/
ao_dev_id = config.AoDevId;//音频输出设备IP
/**/
aioattr.sample_rate = static_cast(config.samplerate);//采样率 HI_AUDIO_SAMPLE_RATE_44100; //采样率
aio_attr.bit_width = HI_AUDIO_BIT_WIDTH_16; //16位
aio_attr.work_mode = HI_AIO_MODE_I2S_MASTER; //配置为主模式
aio_attr.snd_mode = (config.channels==2)? HI_AUDIO_SOUND_MODE_STEREO : HI_AUDIO_SOUND_MODE_MONO;//声道 ;
aio_attr.expand_flag = 0;
aio_attr.frame_num = 5;//缓存帧数量 5帧
aio_attr.chn_cnt = 2; / 2:chn num /
aio_attr.clk_share = 1;
aio_attr.i2s_type = HI_AIO_I2STYPE_INNERCODEC;//选用内部声卡
aio_attr.point_num_per_frame = 1152;//帧大小

LIB_DEBUG("aio_attr.snd_mode(%d)  config_.channels(%d)\n", aio_attr.snd_mode,config_.channels); 
ret = hi_mpi_ao_set_pub_attr(ao_dev_id, &aio_attr);
if (ret != HI_SUCCESS) {
    LIB_DEBUG("%s: hi_mpi_ao_set_pub_attr(%d) failed with %#x!\n", __FUNCTION__, ao_dev_id, ret);
    return HI_FAILURE;
}

ret = hi_mpi_ao_enable(ao_dev_id);
if (ret != HI_SUCCESS) {
    LIB_DEBUG("%s: hi_mpi_ao_enable(%d) failed with %#x!\n", __FUNCTION__, ao_dev_id, ret);
    return HI_FAILURE;
}
ao_chn_cnt = aio_attr.chn_cnt >> ((hi_u32)aio_attr.snd_mode);
uint8_t i=0;
for (i = 0; i < (hi_s32)ao_chn_cnt; i++) {
    ret = hi_mpi_ao_enable_chn(ao_dev_id, ao_chn_cnt);
    if (ret != HI_SUCCESS) {
        LIB_DEBUG("%s: hi_mpi_ao_enable_chn(%d) failed with %#x!\n", __FUNCTION__, i, ret);
        return HI_FAILURE;
    }
}

ret = hi_mpi_ao_enable_chn(ao_dev_id, HI_AO_SYS_CHN_ID);
if (ret != HI_SUCCESS) {
    printf("%s: hi_mpi_ao_enable_chn(%d) failed with %#x!\n", __FUNCTION__, i, ret);
    return HI_FAILURE;
}

ret = sample_inner_codec_cfg_audio(aio_attr.sample_rate);
if (ret != HI_SUCCESS) {
    printf("%s:sample_inner_codec_cfg_audio failed\n", __FUNCTION__);
    return ret;
}
return  HI_SUCCESS ;

}
运行错误提示: hi_mpi_ao_enable_chn(0) failed with 0xa0168003!

我来回答
回答6个
时间排序
认可量排序

wjz

14个粉丝

3

问答

0

专栏

6

资料

wjz 2025-09-26 09:26:11
认可1

你为啥要调用2次

随风
随风   回复   wjz  2025-09-26 09:40:04
0

参考官方例程,例程中都是这么干的。没搞明白原因,所以就直接套用了。当前第一次调用就报错了

UncleRoderick

59个粉丝

16

问答

4

专栏

20

资料

UncleRoderick 2025-09-26 10:45:20
认可1

cat /dev/logmpp看看错误信息

Sunshine

11个粉丝

2

问答

6

专栏

6

资料

Sunshine 2025-09-26 11:53:24
认可1
易百纳技术社区该回答已被题主采纳为最佳答案


随风
随风   回复   Sunshine  2025-09-26 11:55:01
1

发完贴子后也发现了

Sunshine
Sunshine   回复   随风  2025-09-26 11:57:32
1

有些函数直接用samplecomm里的就好了

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区