问题标签 [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 投票
1 回答
982 浏览

python - 我正在寻找一个可以播放 MP3 和 OGG 并支持 ALSA 或类似的跨平台 Python 库

有几个不同的音频库,但是,它们都不能满足我的确切需求:
- 它需要是跨平台的。
- 它需要能够在 Linux 下使用 ALSA、PulseAudio 或任何其他常见的默认混音器。
- 它需要能够自动检测采样频率。
- 它需要(相当)简单的使用,如果有人可以给我一个额外的脚本,这将使我更容易被接受。
- 我需要的唯一功能是播放/暂停,寻找是一个不错的奖励。
- 它需要能够播放 MP3 和 OGG。没有其他格式对我很重要。

到目前为止我尝试过的库:
PyGame - 不支持检测歌曲的频率
PyAudiere - 有希望,但只在 Linux 中加载 OSS,我有严重的混合问题
内置模块 - 据我所知,不支持 MP3 和 OGG
PyMedia - 有希望,但很复杂。也找不到它使用什么混合设备。
PySonic - 依赖于一个闭源库。
PyQt4.phonon - 有希望,但不会播放任何东西。得到以下错误:

gst_element_make_from_uri:断言“gst_uri_is_valid (uri)”失败

对此的任何帮助将不胜感激。

0 投票
4 回答
6280 浏览

c - 如何在不打开设备的情况下在 Linux 中以编程方式找出 ALSA 音频设备功能

如何在不先打开设备的情况下找出 ALSA 设备的功能?问题是,我需要向snd_pcm_open()函数提供参数以使用对我来说很愚蠢的测试函数。如果我必须先告诉它打开功能,为什么还要问这是播放设备还是录音设备?

例如,我想列出所有播放设备,但我能想到的唯一方法是尝试打开我找到的每个设备(使用snd_device_name_hint())并尝试在播放模式下打开它们,如果我设法打开,一切都很好。

问题是,对于所有可能的变化(采样率、通道等),我需要执行大量的 open() 来找出参数。

0 投票
1 回答
4650 浏览

c++ - 用 alsa 录制 8 位签名单声道 16khz 声音的最简单方法(以与脉冲兼容的方式)?

我完全迷路了,有没有人有一个非常简单的例子来说明如何使用 ALSA 和 c++ 来录制声音?我唯一需要的是原始样本作为带符号的字节,用于将它们提供给我程序的另一部分。我在谷歌上搜索的所有示例似乎都与 PulseAudio 有问题,或者没有涵盖我需要的内容。

0 投票
1 回答
4156 浏览

c - ALSA: How can I find a device in the device list and still I get "No such file or directory" when opening it?

It seems I don't understand the ALSA architecture, even after reading most of the documentation on offer:

I list all the available ALSA devices using snd_device_name_hint() and snd_device_name_get_hint(). This lists, among others "pulse" under hwdep class so it looks like PulseAudio is available in my system. But when I try to open it with snd_pcm_open() (non-blocking mode and either in or out) I get "No such file or directory".

What gives? I can open other devices, for instance the in-built Intel chip works fine, why doesn't PulseAudio?

0 投票
4 回答
22157 浏览

c++ - 如何使用 ALSA 的 snd_pcm_writei()?

谁能解释一下snd_pcm_writei

作品?

我这样使用它:

完整的源代码在http://pastebin.com/m2f28b578

这是否意味着,我不应该给出snd_pcm_writei()所有帧的数量buffer,而只是

采样率 * 延迟 =frames

?

因此,如果我有:sample_rate = 44100 延迟 = 0.5 [s] all_frames = 100000

我应该给予的帧数snd_pcm_writei()

采样率 * 延迟 = 帧 44100*0.5 = 22050

和for循环的迭代次数应该是?:

(int) 100000/22050 = 4; 帧数=22050

和一个额外的,但只有

100000 模 22050 = 11800

帧?

它是这样工作的吗?

路易丝

http://www.alsa-project.org/alsa-doc/alsa-lib/group___p_c_m.html#gf13067c0ebde29118ca05af76e5b17a9

0 投票
4 回答
28486 浏览

android - Android OpenAL?

有没有人为 Android 构建过 OpenAL,或者在系统上找到了它的共享库?这似乎是对任何类型游戏的明显需求,但那里没有资源。据我所知,Android java 声音库似乎无法进行音高更改,因此似乎需要 OpenAL。我知道 OpenAL Soft 可以构建在 ALSA 之上,但我不确定是否有人这样做,而且我敢肯定这需要我一个月的时间。

如果在没有 OpenAL 的情况下在 Android 上的声音处理方面有很好的指南,那也很好。只是 OpenAL 是游戏制作者的一种标准,将我的数千行移植到这个系统会很好,在我深入研究之前,我认为这是 NDK 的重点,发现几乎没有系统上的共享库访问。

谢谢.. 我希望我自己可以在不成为 Java 专家的情况下进行移植。到目前为止真的不喜欢NDK!

0 投票
1 回答
7905 浏览

c++ - Linux,C++ 音频捕获(只是麦克风)库

我正在开发一个音乐游戏,它就像一个歌星,但你必须玩录音机,而不是唱歌。它被称为oFlute,它仍处于早期开发阶段。

在游戏中,我捕获麦克风输入,然后运行一个简单的 FFT 分析并将结果与​​典型录音机的频率进行比较,从而得到播放的音符。

一开始,我使用的音频库是RtAudio,但我不记得为什么我切换到PortAudio,这是我目前正在使用的。问题在于,它有时会随机崩溃或停止捕获,就像麦克风没有声音一样。

我的问题是,在 Linux 上捕获麦克风输入的最佳选择是什么?我只需要打开、读取和关闭来自麦克风的字节流。

我一直在阅读本指南,并且(不)令人惊讶的是它说:

我不认为 PortAudio 对于类 Unix 操作系统来说是非常好的 API。

那么,你推荐我什么?

0 投票
3 回答
5581 浏览

c - 正确调整 Alsa 缓冲区的大小,奇怪的 API

我目前正在开展一个项目,该项目需要我使用 Alsa 进行一些采样。我正在尝试正确配置所有内容,但我一直坚持如何正确调整我的阅读量。

有两个原语似乎对我的任务很有趣:

第一个名称表明输出将是采样周期的时间长度,但这很奇怪:如果我在f = 44100Hz采样周期(以纳秒为单位)设置采样率,T0 = 1e9 / 44100 ~= 22676 ns则函数将回答T1 = 725 us = 725000 ns

同时,即使我被要求使用非锁定原语,我也在尝试分析锁定“readi”所需的时间,结果证明样本T2 = 8028603 ns在最好T3 = 12436217 ns的情况下和最坏的情况下都需要时间。

最后我想不通以下两个是什么意思:

我不明白如何及时测量缓冲区和大小的周期,但是前者返回与 相同的值get_buffer_size,而后者返回与 相同的值get_period_time

有什么提示吗?

0 投票
3 回答
12481 浏览

linux - aplay / alsaplayer - 声音不适用于普通用户

我不能将 alsa 用作普通用户(导致我在铬中没有声音)。

我猜它与权限有关。将自己添加到组音频没有帮助。

以普通用户身份测试声音:

并作为根...

以普通用户身份运行命令“aplay -l”:

并作为根...

任何可能导致这种情况的线索都值得赞赏。也许某些地方需要 chmodded ?

0 投票
3 回答
3635 浏览

android - Android 模拟器声音 - ubuntu

使用 Ubuntu 10.04 64 位进行 Android 开发,一切顺利,除了声音。

我使用了 -audio 选项和 -audio-out 选项,其中 alsa 作为后端参数,但没有运气。

任何想法?