问题标签 [libalsa]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
661 浏览

c - snd_pcm_hw_params_set_buffer_size() 错误:“无效参数”

为什么下面的程序会为 snd_pcm_hw_params_set_period_size()、snd_pcm_hw_params_set_buffer_size() 和 snd_pcm_hw_params_set_rate() 发出错误?如果我将 SAMPLES 的值提高到 768,它只会向 snd_pcm_hw_params_set_rate() 发出错误。值“512”在这里很重要,因为我将一个程序移植到 ALSA,它使用 512 个样本作为其缓冲区(或 256 帧)的大小。

错误消息只是“无效参数” - 我知道,它很模糊。

0 投票
1 回答
60 浏览

c - 通过 alsa 输出声音的函数在通过 pthread create 调用时不起作用:没有声音,100% CPU 使用率

我有一个程序通过套接字接收消息并根据消息开始或停止播放某个声音文件。为了让“停止”消息起作用,我需要从单独的线程播放声音。我的解决方案是使用我使用 pthread_create() 调用的函数中的 alsa 播放声音,并在收到停止消息后使用 pthread_cancel() 结束线程。播放声音的函数称为 play_sound(void *args);

这是有效的:

但是一旦我尝试从一个新线程中运行该函数,我的两个线程上都没有声音和 100% 的 CPU 使用率:

我什至不知道从哪里开始故障排除。

我的代码如下所示:

0 投票
1 回答
225 浏览

audio - 对于 Alsa pcm 设备,period_size 设置为 128,但有时轮询发生较晚

我面临一个问题,周期大小已设置为 128,但有时轮询开始较晚。
对于此配置,周期大小设置为 128,速率为 16 Khz,因此应在每 128/16 = 8 ms 之后进行轮询,但在某些情况下,轮询发生得有点晚,这会导致应用程序出现某些问题。
由于轮询是由依赖于配置的 Alsa 系统模块在内部触发的,因此请建议我们是否在配置的某个地方出错或任何人可能遇到的任何类似问题。在下面粘贴我的设置的 PCM 转储:-

0 投票
0 回答
67 浏览

linux - asoundrc文件中“类型循环”的含义是什么?

我是 ALSA 及其用户空间配置的新手。我在我的 asoundrc 中看到了一个 pcm 设备,如下所示

插件类型“循环”是什么意思?我检查了这份文件,但我看不到任何补偿。

我知道下面的配置是什么意思。这里他们使用snd-aloop Linux驱动来实现一个loopback设备,和hw:Loopback,0,0一样。如果我的理解有误,请指正。

两者的配置是否相同,只是另一种表示方式?提前致谢!

0 投票
2 回答
2733 浏览

audio - 在 Linux 上共享麦克风音频流

最重要的是,我的场景是开发一个可访问性应用程序,而不是任何恶意窃听,而在这个场景中,还有各种研究和开发隐含的场景,所有这些都应该极大地受益于能够多次读取麦克风音频流同时运行不相关的进程,例如记录工具和/或我自己的代码的不同版本。

问题陈述

我正在使用高级 python API 读取麦克风输入流,如下所示:

我想了解是否可以(在 Linux 上)将麦克风音频流同时读取到另一个程序,例如 Google Meet / Zoom 读取它。即有效地共享音频流。

与上面提到的 python 包装器一样,当视频通话正在进行时启动上述代码时,它会简单地无法打开流,这并不奇怪:

诚然,我还不太熟悉 ALSA 术语以及一般的 linux 上的声音堆栈。

我的问题是,这可以直接使用 ALSA 库 API 来完成,还是通过其他声音堆栈或声音系统配置来完成?或者,如果所有其他方法都不起作用,通过代理程序/驱动程序能够将音频缓冲区暴露给多个消费者,而不会导致音频流延迟明显下降?

0 投票
1 回答
104 浏览

c++ - C ++ alsa api不良记录质量

我正在尝试在 linux 上使用 alsa api 录制麦克风,但结果是奇怪的声音,例如冻结的故障机器人。记录由 UDP 协议发送到 pcm 播放器端点的 pcm 数据。

示例结果:https ://voca.ro/1m3zDAmdW5cc

0 投票
2 回答
1594 浏览

python - 如何解决这些 ALSA 错误

这是我的代码。当我尝试运行它时,它显示以下错误

我正在使用 conda env。我已经搜索了很多关于 ALSA 错误的信息,但只解决了 jackd2 错误。请帮我解决这个错误。

0 投票
0 回答
35 浏览

locale - 为什么我在使用 Yocto 的 alsamixer 中得到奇怪的字符?

我正在构建一个 Yocto 图像。除了显示非常奇怪的字符的 alsamixer GUI 之外,它工作正常: 在此处输入图像描述

我已经找到了这篇文章,并且已经尝试更改语言环境设置(通过使用 export LANG=en_US),但它并没有改变任何东西。默认情况下,所有语言环境都有设置“POSIX”。我的另一个想法是修复 ncurses 库,但它似乎也没有问题......

如何解决这种奇怪的行为?

编辑:我刚刚在我的设备上安装了一个 ssh 服务器,它确实有效!它仍然无法通过串行线工作,我不知道为什么。但现在它通过 SSH 工作,对我来说没问题!

0 投票
1 回答
94 浏览

midi - 来自 MIDI 键盘的 ALSA 输入

我正在使用 libasound 在 Linux 中编写软件合成器。我想用 MIDI 键盘控制它。

我有一些使用 snd_seq_open() 和 snd_seq_event_input() 的工作代码,但它只创建一个虚拟 MIDI 端口。我必须转到命令行并输入“aconnect 20 128”才能将 MIDI 数据路由到我的应用程序。

如何让我的代码自行建立连接或直接连接到 MIDI 硬件?

0 投票
1 回答
281 浏览

linux - 如何安装 lib32-alsa-plugins-1.2.2-1-x86_64.pkg.tar.zst

我从https://archlinux.org/packages/multilib/x86_64/lib32-alsa-plugins/下载了文件, 我需要如何使用安装这个包的命令?