问题标签 [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.
mercurial - 在 mercurial 版本控制之后,调用“./missing ...”后“make”失败
我在运行时成功编译了 alsa-lib ./configure
,随后make
从原始文件中提取的源代码.tar.gz
由于我使用 mercurial 进行版本控制,然后尝试 hg 克隆完整的源代码树,./configure
andmake
不再起作用。
我将.tar.gz
提取的源与使用 kdiff3 的 hg 克隆源进行了比较,它们完全相同(.hg 文件夹除外)。
我注意到从提取的 make 中运行.tar.gz
它只是编译;相反,在编译之前,从 hg 克隆源运行相同的调用
然后在开始编译失败之前再次出现配置命令列表。
删除名为“missing”的文件的所有内容我也可以从 hg 克隆源中成功编译,但这个解决方案在我看来很难看,有人知道这里发生了什么吗?
java - Java和USB声卡中的声音问题
我一直在使用 Java 进行大学软件开发课程,最近我们一直在做一些构建 MP3 播放器的工作。
我的问题是 Java 中的声音无法正确播放。我在 Ubuntu 10.10 上并且有一台笔记本电脑,但我使用的是外部声卡(USB,因为我的内置声音听起来不太好)。问题是 Java 总是通过我的笔记本电脑内部声卡播放声音(即使 Ubuntu 将内部声音列为关闭),所以我听到的是我的小笔记本电脑扬声器发出的声音,而不是连接到我的声卡的扬声器。
我可以通过使用 aoss 程序让它通过声卡播放,但这样做很痛苦。我在我的系统上使用带有 USB 声卡的 alsa,它可以与其他声音程序和音乐播放器一起正常工作,关于如何解决这个问题的任何想法?我很乐意提供任何人需要或会觉得有帮助的任何信息。谢谢!
ruby - Ruby 线程不会进行上下文切换
使用 MRI ruby 1.9 我有一些代码
start_alsa_listener 是一个阻塞库调用,它打开 ALSA midi 音序器并等待其上的输入事件。本质上,我希望我的代码能够不断地“在 foo 循环中”打印出来,同时能够接收 ALSA midi 事件并将它们也打印到控制台(start_alsa_listener 在收到事件时会这样做)。
问题是,当我运行上面的代码时,一旦 bar() 运行,它就永远不会将上下文切换回 foo()。
start_alsa_listener 是一个 ruby C 扩展,看起来像:
也许它与 Ruby 中的某些事情有关,我在线程方面做错了,或者可能与轮询有关,或者可能与 ALSA 处理线程的方式有关。任何帮助表示赞赏。
android - 找不到 alsa/asoundlib.h
在构建我的 Android 源代码时出现此错误
找不到 alsa/asoundlib.h
我已经安装了 libasound2-dev。asoundlib.h 存在于 usr/include/alsa/ 文件夹中,但构建器仍然无法找到它。
谁能告诉我为什么编译器找不到asoundlib.h?如何将 /usr/include 添加到头文件的搜索路径中?
c - 包含 WAV 文件格式信息的 formats.h 文件
我正在尝试制作一个可以录制语音并使用 ALSA 在 LINUX 上以数字音频格式存储的 prog。(目前使用 Ubuntu)。在网上寻找帮助时,我从这里找到了这段代码
但是,我的系统上没有“formats.h”头文件。任何人都知道从哪里(哪个开发 pkg)我可以得到这个头文件(包含音频文件格式相关信息)?
谢谢,维克拉姆
android - alsa_aplay 没有在 android 上录制
我刚刚开始研究 android,我正在尝试了解 android 音频子系统 (alsa) 的工作原理。我在 windows-7(64 位)上运行的虚拟框中运行 android 映像。
我正在摆弄 alsa-utils 来录制声音。我试过
alsa_aplay -C -f S16_LE -c 2 -r 44100 -d 5 foo.wav
它说的是:
Recording WAVE foo.wav : Signed 16 bit little endian, rate 44100, stereo
但是,创建的输出文件似乎是空白的(在 wav 文件头之后)。
od -x foo.wav
我还发现这alsa_amixer
是段错误。
alsa_ctl
init 也会引发错误,但会继续执行一些默认配置
当我检查 alsa 使用的当前配置时,alsa_ctl store -f cur_config.txt
它有capture switch: true
并且capture volume: value.0 = 8 & value.1 = 8
的输出alsa_amixer scontrols
知道为什么我无法录制吗?
[更新]
vbox 中的默认音频控制器是ICH AC 97
. 我将其更改为Intel HD Audio
并尝试了相同的操作,并且有效。现在我可以录制声音了。两种情况下的lsmod | grep snd
输出都是:
的输出ls /dev/snd
也不同:
我尝试比较strace -f alsa_aplay -C foo.wav
,但在那里找不到任何有用的东西。唯一的区别是,在 ioctl 调用之后,“0000”以第一种情况写入(使用 ICH AC 97),其中一些有意义的数据是用“英特尔高清音频”写入的
这可能是因为某些驱动程序问题吗?
[更新结束]
alsa - alsa snd_pcm_writei
我注意到 pcm.c 和 speaker-test.c 中的正弦发生器在循环中生成了一个新的正弦缓冲区。所以它不断地重新创建相同的缓冲区。我想播放缓冲区而不是每次都重新创建它以节省一些 cpu 时间。但是,当我尝试通过首先构建缓冲区然后将相同的缓冲区发送到 snd_pcm_writei 来运行代码时,我在每个缓冲区的末尾都会听到一点咔哒声。但是,当它每次都被重建然后发送到 snd_pcm_writei 时,缓冲区末尾没有一点点击。为什么每次播放前都需要重建正弦缓冲区以免产生咔嗒声?
任何帮助,将不胜感激?
来自 pcm.c:
synchronization - alsa snd_pcm_writei 同步
您好,我正在使用 alsa 的 API 和 snd_pcm_writei 开发声音播放器。
在 CENTOS5 和 alsa 1.0.18RC3 中工作正常,但是在 Ubuntu 10.10 和 alsa 1.0.23 上,我的时间有问题。
我将缓冲区大小和周期大小设置为 40 毫秒。在 CENTOS5 中,snd_pcm_writei 阻止了我 40 毫秒,没关系,但在 Ubuntu 中,snd_pcm_writei 阻止了我 80 毫秒,然后在下一次呼叫中没有阻止我,然后是 80 毫秒,然后是 0....但是为什么呢?我每次调用我写 40 毫秒,就好像缓冲区大小是 80 毫秒,声卡需要另外 40 毫秒来填充缓冲区,然后等待 80 毫秒直到播放帧,但是我将缓冲区大小设置为 40 毫秒并检查它。
所以我的问题是,呼叫之间有 40 毫秒我能做什么?
非常感谢
android - 在vm中启动自编译android时出错
我在 virtual-box 4.0.4 中启动 android vm(从 froyo 分支编译)时遇到以下错误
似乎问题出在声音设备(或 ALSA)上,但我不确定。任何帮助表示赞赏。
android - 需要一个简单的录音示例
我需要在 android 中使用 AudioRecorder 进行简单的音频录制和播放示例。我尝试使用 MediaRecorder,它工作正常。