让 Jack 在 Raspberry 上与 Alsa 合作
Posted
技术标签:
【中文标题】让 Jack 在 Raspberry 上与 Alsa 合作【英文标题】:Making Jack work with Alsa on Raspberry 【发布时间】:2018-10-22 08:29:18 【问题描述】:我有一个可以工作的 Raspberry Pi 3B。 操作系统是 Raspbian Stretch。
默认板载 Broadcom 音频已禁用。
USB SoundBlasterG1 声卡已插入并配置为 hw:0
nano /etc/asound.conf
pcm.!默认 类型插头 奴隶 pcm“硬件:0”
ctl.!default 输入硬件 卡 0
我可以像这样使用 aplay 播放 wav 声音文件
> aplay hello.wav
播放 WAVE 'hello.wav':有符号 16 位 Little Endian,速率 16000 Hz,单声道
我可以像这样使用 arecord 来录制 wav 声音文件
> arecord foo.wav
录制 WAVE 'foo.wav':无符号 8 位,速率 8000 Hz,单声道
我可以像这样运行 Jack 服务器
> jackd -d alsa
正在加载驱动程序.. 创建 alsa 驱动程序 ... hw:0|hw:0|1024|2|48000|0|0|nomon|swmeter|-|32bit 配置为 48000Hz,周期 = 1024 帧 (21.3 ms),缓冲区 = 2 个周期 ALSA:最终选择的捕获样本格式:16bit little-endian ALSA:使用 2 个句点进行捕获 ALSA:最终选择的播放样本格式:16bit little-endian ALSA:使用 2 个句点播放
但是杰克似乎没有从麦克风捕捉到任何信号:
如果我跑
> jackd -v -d alsa
我得到以下附加输出
新缓冲区大小 1024 调整类型 0 的端口缓冲区段大小,一个缓冲区 = 4096 字节 调整类型 1 的端口缓冲区段的大小,一个缓冲区 = 2048 字节 注册端口系统:capture_1,偏移量 = 4096 注册端口系统:capture_2,offset = 8192 注册端口系统:playback_1, offset = 0 注册端口系统:playback_2,offset = 0 ++ jack_sort_graph ++ jack_rechain_graph(): -- jack_rechain_graph() -- jack_sort_graph 1160 等待信号 负载 = 0.0452 最大使用:21.000,备用 = 23198.000 负载 = 0.0678 最大使用次数:21.000,备用 = 23198.000 负载 = 0.0791 最大使用次数:21.000,备用 = 23198.000 (..等)
我需要什么设置 Jack 以使用 Raspberry PI 上的 ALSA 驱动程序从我的 USB 声卡麦克风捕获数据。
【问题讨论】:
【参考方案1】:使用 Jack,采集和回放端口不会自动连接。
可以通过 UI 应用 qjackctl 或使用 jack_connect 通过 cli 连接端口。
Qjackctl 包通常被列为 jackd 的依赖项,jack_connect 脚本与 jackd 捆绑在一起。
【讨论】:
以上是关于让 Jack 在 Raspberry 上与 Alsa 合作的主要内容,如果未能解决你的问题,请参考以下文章
如何让 Firefox 在 Mac OSX 上与 Selenium WebDriver 一起工作
如何让 OpenCV 在 Raspberry Pi 4 (Raspbian Buster) 上完全运行?
如何让`setup.py test`在Windows上与`multiprocessing`一起工作?