让 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 合作的主要内容,如果未能解决你的问题,请参考以下文章

似乎无法让蓝牙代理在 Raspberry Pi 中工作

如何让 Firefox 在 Mac OSX 上与 Selenium WebDriver 一起工作

如何让 OpenCV 在 Raspberry Pi 4 (Raspbian Buster) 上完全运行?

如何让`setup.py test`在Windows上与`multiprocessing`一起工作?

如何让数字键盘箭头在 Linux 上与 Java 应用程序一起使用

如何让 OpenGL 在 Windows 上与 Visual Studio Code 一起工作?