【发布时间】:2011-10-06 18:57:48
【问题描述】:
我在 Clojure 中编写了几百行应用程序,这些应用程序使用 JLayer Java 库来处理我在后台运行 mp3 的音频。这工作正常,但只要我在后台运行任何其他音乐、YouTube 等(我正在运行 Arch Linux),我的应用程序中的声音就会完全停止。
我已经浪费了过去两个小时并尝试了几十种方法来解决这个问题,因此不胜感激。
【问题讨论】:
-
我的第一个猜测是,如果你的应用程序被放置在后台,它会被暂停,我的第二个猜测是声音缓冲区只适用于一个应用程序。如果您的应用程序在后台,它还会做其他事情吗?试着让它写入一个文件,看看这个文件是否继续增长,即使你的应用程序在后台。您能给我们一个sscce.org 以便我们尝试重现并修复它吗?
-
听起来更像是一个声音驱动程序问题,而不是 Clojure / Java 问题......你最好在 Linux 专家论坛上提问!
-
感谢您的回复,这仍然是一个问题,我可以同时运行来自其他来源的多个声音流,即 skype + youtube + mp3 工作正常,此外,我可以让我的应用程序在音乐播放时创建图表运行后台,因此它可以在音频打开时运行.. 只是当另一个设备有音频时,它会立即停止并且在重置之前不会恢复
-
是的,我同意这可能是声音系统问题。我最近玩弄了一个类似的设置(Clojure x Java x Arch Linux),但从环回接口录制。需要注意的事项:1)您的应用程序在哪个声音端口上侦听/流式传输(请参阅 javax.sound.sampled.AudioSystem 以查看可用的混音器等)。如果您有几个尝试更改为另一个(您可以使用 Audacity 来查看可用的混音器)。 2) 检查你的 ALSA 配置(我不得不调整我的并通过 .asoundrc 配置文件添加一些新的混音器以添加环回接口)。
-
这是从用户而不是程序员的角度来看的。我直接使用ALSA的时候经常会遇到这种问题。您可以尝试使用 PulseAudio 吗?