您尚未登录。

楼主 # 2023-02-19 23:20:28

xfdr0805
会员
注册时间: 2020-07-23
已发帖子: 291
积分: 344

Linux5.4 F1C100上测试USB Gadget Audio碰到的问题?

1.第一种是USB Gadget Audio Class 1.0 Legacy
这种方式需要有实体的声卡,就是加载驱动时指定那个放音设备/dev/snd/pcmC1D0p,不指定的话,放音设备是/dev/snd/pcmC0D0p 录音设备是/dev/snd/pcmC0D0c,驱动加载完,不需要其它操作,就可以直接使用了。

但是问题来了,但是这种方式会独占那个声卡,其它程序是无法再访问那个设备了,我需要程序和USB混音,修改asound.conf也没用

2.第一种是USB Gadget Audio Class 1.0
这种方式在驱动加载后,系统会多出一张声卡,包含一个放音,一个录音设备,前边那种是不会出现任何设备的

modprobe g_audio.ko c_srate=48000 c_ssize=2 c_chmask=3 #48k 16bit 2ch

[   71.822514] g_audio gadget: Hardware params: access 3, format 2, channels 2, rate 48000
[   71.830844] g_audio gadget: Linux USB Audio Gadget, version: Feb 2, 2012
[   71.837646] g_audio gadget: g_audio ready
[   72.123305] g_audio gadget: high-speed config #1: Linux USB Audio Gadget
名字也叫 AC INTERFACE ,如果需要改名字,是在uac1.c里边修改,电脑播放音乐

执行 arecord -D hw:2,0 -f dat -vv | aplay -D hw:1,0 -f dat 可以听到电脑播放的音乐,这种方式好像挻符合要求的

但是问题又来了,这种方式需要电脑或者手机一直播放着音乐才行,否则过一会I/O错误,录音进程直接退出,电脑端正常播放不受影响,但是板子肯定没音了,录音进程已经退出了,重新执行命令才可以。问题是我怎么知道用户什么播放呢?录音进程录不到东西就直接能出了,不能一直在后台运行
2023-02-17_145650.png

3.USB Gadget Audio Class 2.0
既然上边那种方式也不行,那再试试2.0,驱动加载完成后,同样会多出2个声卡,设备管理器里会出现一个叫 Source/Sink的设备,尴尬的是设备启动不了,但是在Linux或者手机上是正常的,系统是win10 build1909 已经自动2.0驱动了,其它操作跟上边是一样的,也是需要一直录音才能使用,不放音时 录音进程直接IO错误面退出
2023-02-18_112640.png

最后,请大神支点招,如何解决电脑在没播放音乐时,录音进程退出问题?不放音乐时 一直传输0不就行了吗,这样录音也可以一直进行下去了

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn