问题标签 [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.
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)”失败
对此的任何帮助将不胜感激。
c - 如何在不打开设备的情况下在 Linux 中以编程方式找出 ALSA 音频设备功能
如何在不先打开设备的情况下找出 ALSA 设备的功能?问题是,我需要向snd_pcm_open()
函数提供参数以使用对我来说很愚蠢的测试函数。如果我必须先告诉它打开功能,为什么还要问这是播放设备还是录音设备?
例如,我想列出所有播放设备,但我能想到的唯一方法是尝试打开我找到的每个设备(使用snd_device_name_hint()
)并尝试在播放模式下打开它们,如果我设法打开,一切都很好。
问题是,对于所有可能的变化(采样率、通道等),我需要执行大量的 open() 来找出参数。
c++ - 用 alsa 录制 8 位签名单声道 16khz 声音的最简单方法(以与脉冲兼容的方式)?
我完全迷路了,有没有人有一个非常简单的例子来说明如何使用 ALSA 和 c++ 来录制声音?我唯一需要的是原始样本作为带符号的字节,用于将它们提供给我程序的另一部分。我在谷歌上搜索的所有示例似乎都与 PulseAudio 有问题,或者没有涵盖我需要的内容。
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?
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
android - Android OpenAL?
有没有人为 Android 构建过 OpenAL,或者在系统上找到了它的共享库?这似乎是对任何类型游戏的明显需求,但那里没有资源。据我所知,Android java 声音库似乎无法进行音高更改,因此似乎需要 OpenAL。我知道 OpenAL Soft 可以构建在 ALSA 之上,但我不确定是否有人这样做,而且我敢肯定这需要我一个月的时间。
如果在没有 OpenAL 的情况下在 Android 上的声音处理方面有很好的指南,那也很好。只是 OpenAL 是游戏制作者的一种标准,将我的数千行移植到这个系统会很好,在我深入研究之前,我认为这是 NDK 的重点,发现几乎没有系统上的共享库访问。
谢谢.. 我希望我自己可以在不成为 Java 专家的情况下进行移植。到目前为止真的不喜欢NDK!
c++ - Linux,C++ 音频捕获(只是麦克风)库
我正在开发一个音乐游戏,它就像一个歌星,但你必须玩录音机,而不是唱歌。它被称为oFlute,它仍处于早期开发阶段。
在游戏中,我捕获麦克风输入,然后运行一个简单的 FFT 分析并将结果与典型录音机的频率进行比较,从而得到播放的音符。
一开始,我使用的音频库是RtAudio,但我不记得为什么我切换到PortAudio,这是我目前正在使用的。问题在于,它有时会随机崩溃或停止捕获,就像麦克风没有声音一样。
我的问题是,在 Linux 上捕获麦克风输入的最佳选择是什么?我只需要打开、读取和关闭来自麦克风的字节流。
我一直在阅读本指南,并且(不)令人惊讶的是它说:
我不认为 PortAudio 对于类 Unix 操作系统来说是非常好的 API。
那么,你推荐我什么?
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
。
有什么提示吗?
linux - aplay / alsaplayer - 声音不适用于普通用户
我不能将 alsa 用作普通用户(导致我在铬中没有声音)。
我猜它与权限有关。将自己添加到组音频没有帮助。
以普通用户身份测试声音:
并作为根...
以普通用户身份运行命令“aplay -l”:
并作为根...
任何可能导致这种情况的线索都值得赞赏。也许某些地方需要 chmodded ?
android - Android 模拟器声音 - ubuntu
使用 Ubuntu 10.04 64 位进行 Android 开发,一切顺利,除了声音。
我使用了 -audio 选项和 -audio-out 选项,其中 alsa 作为后端参数,但没有运气。
任何想法?