这几天叨扰大家了,主要是实验室项目催得急,我也是第一次接触嵌入式
我想在c语音或c++中使用alsa,接收录音数据,但总是报错:
# ./alsa hw:0,2
[ 551.072333] start set dmic register....
[ 551.077675] PHOENIX DMIC: cannot prepare slave dma
read from audio interface failed (Invalid argument)
但我用一下命令是正常运行:
arecord -D hw:0,2 -c 1 -f S16_LE -r 16000 -d 1 record1.wav
看了手册想去编译tinyalsa,但总报错for(int i =0) c99 Mode这个错误,就是不能再for循环中定义
我现在就是想在c++中接收到录音数据,因为我要对语音数据进行一下操作,然后再播放出去,合作方已经连接了Mic和扬声器。
我的猜想:这个是系统的问题,因为系统是合作方烧录的,我只能拿到处理后的硬件,这样的话,我就去找合作方,主要不确定是不是我这边代码的问题。
期待大佬们解答
离线
我猜你没做argv解析
c99 Mode --std=c99
催的急直接
arecord -D hw:0,2 -c 1 -f S16_LE -r 16000 -d 1 -t raw - | TARGET_PROGRAM
不关心alsa所有细节,直接解析stdin数据得了
最近编辑记录 4610 (2023-10-27 16:39:09)
离线
我猜你没做argv解析
c99 Mode --std=c99
催的急直接
arecord -D hw:0,2 -c 1 -f S16_LE -r 16000 -d 1 -t raw - | TARGET_PROGRAM
不关心alsa所有细节,直接解析stdin数据得了
还有这操作
离线
4610 说:我猜你没做argv解析
c99 Mode --std=c99
催的急直接
arecord -D hw:0,2 -c 1 -f S16_LE -r 16000 -d 1 -t raw - | TARGET_PROGRAM
不关心alsa所有细节,直接解析stdin数据得了还有这操作
arecord -BLAHBLAH - | aplay -BLAH -
环回测试很常用啊
倒是你lan8720调完了?
最近编辑记录 4610 (2023-10-27 17:58:35)
离线
我猜你没做argv解析
c99 Mode --std=c99
催的急直接
arecord -D hw:0,2 -c 1 -f S16_LE -r 16000 -d 1 -t raw - | TARGET_PROGRAM
不关心alsa所有细节,直接解析stdin数据得了
优秀
离线
我猜你没做argv解析
c99 Mode --std=c99
催的急直接
arecord -D hw:0,2 -c 1 -f S16_LE -r 16000 -d 1 -t raw - | TARGET_PROGRAM
不关心alsa所有细节,直接解析stdin数据得了
您好,我添加了argv解析的功能,然后参数和arecord -D hw:0,2 -c 1 -f S16_LE -r 16000 -d 1这个命令都设置一致,但还是相同报错,尝试了tinyalsa,初始化函数都无法通过,报错:
[ 121.179862] start set dmic register....
Unable to open PCM device: cannot set sw params: Invalid argument
期待您的解惑
离线
@4610
嗯嗯,我是说用stdin方式接收输入
离线