问题标签 [alsa]

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 投票
8 回答
60284 浏览

python - PyAudio 工作,但每次都吐出错误消息

我正在使用 PyAudio 记录来自麦克风的输入。

由于音频对我来说录制得很好,我应该尝试简单地抑制它的错误消息吗?还是有办法解决它们?

0 投票
1 回答
157 浏览

linux - 将 sameplerate 或 dmix ALSA 插件附加到 OSS 设备

我在嵌入式系统中有一个应用程序,它有一个基于 OSS 的应用程序。不幸的是,这个应用程序的采样率是固定的(8K),但我需要它是 48K。此外,我无法更改应用程序。

我正在研究采样率转换插件,例如 dmix 或 libsamplerate,但我不知道如何将其与 OSS 一起使用。

有人可以指出我正确的方向吗?我可以配置 ALSA 以将 OSS 接口从 8K->48K 转换为系统输入/输出吗?

TIA

麦克风

0 投票
2 回答
2888 浏览

python - 尝试从麦克风录制并实时播放

我正在尝试从我的麦克风记录数据,然后通过扬声器实时回放,并且有一些延迟,但我遇到了一些问题。我选择使用 python 和 alsaaudio,我当前遇到问题的脚本可以在 这里找到。这适用于我目前所拥有的(不是延迟部分),但会产生一些点击。alsaaudio docs 有这样的说法:

PCM 音频播放出现问题的最常见原因是对 PCM 设备的写入必须与设备的数据速率完全匹配。

如果写入设备的数据太少,设备就会欠载,并且会发出难听的咔嗒声。相反,如果写入设备的数据过多,则写入函数将阻塞(PCM_NORMAL 模式)或返回零(PCM_NONBLOCK 模式)。

我似乎误解了文档,它说的是关于 write():

PCM.write(数据)

在数据中写入(播放)声音。数据长度必须是帧大小的倍数,并且应该正好是一个句点的大小

我脚本中的句号是 160。

它是关于 read() 的:

在 PCM_NORMAL 模式下,该函数阻塞直到一个完整的周期可用,然后返回一个元组 (length,data),其中 length 是捕获数据的帧数,data 是捕获的声音帧作为字符串。返回数据的长度将为 periodsize*framesize 字节。

在我的脚本中, period_size*frame_size 也应该等于 160,但是当我打印长度(元组 read() 返回的一部分)时,我得到 940。显然我似乎没有将正确数量的数据传递出去。 write(),但我不知道该去哪里。我主要通过我找到的示例将这些代码放在一起,并且我刚开始使用 alsaaudio / sound,尝试将一些有趣的项目放在一起,所以我还不知道很多。

我还想从麦克风现场录制,然后以 100 毫秒的延迟播放,因此注释为 time.sleep()。如果我取消注释,长度似乎从 940 到 -32 重复,最终导致 out.write() 抛出异常(数据不足)。

有人能告诉我如何(或我的脚本有什么问题)我会实时录制和播放声音数据,并且有 100 毫秒的延迟吗?

0 投票
1 回答
1555 浏览

video - 在某些 alsa 设备上启用 xine 声音(HDMI 为 0.3)?

我希望 xine v0.99.6 通过 alsa 设备 0.3(我的 HDMI 输出)输出我的声音。一如既往 :) Ubuntu 11.04 安装在带有 NVIDIA ION 芯片组的小型 Atom 盒子上,以防万一有人想知道。

ALSA 已配置并正在工作,

播放良好(音频和视频)。我不使用 mplayer 的原因是 mplayer 在视频之间切换回桌面,这在这种情况下是不需要的。

到目前为止,我启动 xine 的命令行是

从那里我使用 ruby​​ 脚本(通过端口 6789 上的网络连接)控制不同视频的播放。

任何想法都会有很大帮助,

提前致谢,

0 投票
1 回答
4073 浏览

android - 使用 Mediaplayer 时出现错误 -19,0?

有人知道我为什么会得到这个吗?这通常发生在使用 mediaPLayer 播放大约 100 多个这样的音频文件之后。我是这样玩的

我错过了什么吗?对android开发来说相当新。谢谢

0 投票
3 回答
8005 浏览

alsa - 为什么在pulseaudio运行时aplay可以工作,否则不行?

我安装了 ubuntu,默认安装了 pulseaudio。当 pulseaudio 运行时,它可以工作: aplay -D hw:2,7 /usr/share/xbmc/sounds/Bursting\ Bubbles/nav.wav

但是当没有 pulseaudio 守护进程运行时,它不会。该命令没有给出错误,但我听不到声音。

hw:2,7 是 Nvidia hdmi 设备。

为什么是这样?我想不通。

0 投票
1 回答
1132 浏览

android - Android、msm_pcm_out 设备和 ALSA 库

谁能告诉我是否可以在 Android 的原生 C 代码中直接使用 alsa lib?

因为我必须从本机 C 代码套接字 fd 接收原始数据,所以我认为也最好在本机 C 中播放它。查了很多,发现可以直接使用msm_pcm_out设备播放pcm数据,但是在我的平台上找不到这个设备。所以我最后的选择是使用 alsa lib。我的问题是:

  1. 我可以自己添加 msm_pcm_out 设备吗?并像示例 playwav.c 一样使用它?

  2. 如果无法添加 msm_pcm_out 设备,我可以在本机 C 中使用 alsa lib 吗?

  3. 如果我上面提到的一切都是不可能的,有什么建议吗?

谢谢你。

0 投票
2 回答
346 浏览

c - 使用 ALSA API 播放唱名笔记?

我正在使用Alsa API,我想知道应该将哪些参数传递给函数snd_pcm_writei以简单地播放 solfège 音节/音符(AG / do re mi fa sol la si do)。

谢谢

0 投票
1 回答
2062 浏览

c - 以编程方式在 Linux 上查找可用的声卡

有没有办法使用 asoundlib 和 C 以编程方式获取系统上可用声卡的列表?我希望它具有与 相同的信息/proc/asound/cards

0 投票
1 回答
1676 浏览

android - Android NDK 和 ALSA

您好,我有一个在 Android NDK 下编译的库。这个音频库使用 ALSA。

问题 - 是否可以通过 ALSA 在 Android 中播放音频?如果是这样,是否有必要为 NDK 编译 ALSA?