【问题标题】:Problems with sound in Java and USB sound cardJava和USB声卡中的声音问题
【发布时间】:2011-08-08 10:06:04
【问题描述】:

我一直在使用 Java 进行大学软件开发课程,最近我们一直在做一些构建 MP3 播放器的工作。

我的问题是 Java 中的声音无法正确播放。我在 Ubuntu 10.10 上并且有一台笔记本电脑,但我使用的是外部声卡(USB,因为我的内置声音听起来不太好)。问题是 Java 总是通过我的笔记本电脑内部声卡播放声音(即使 Ubuntu 将内部声音列为关闭),所以我听到的声音来自我的小笔记本电脑扬声器,而不是连接到我的声卡的扬声器。

我可以通过使用 aoss 程序让它通过声卡播放,但这样做很痛苦。我在我的系统上使用带有 USB 声卡的 alsa,它可以与其他声音程序和音乐播放器一起正常工作,关于如何解决这个问题的任何想法?我很乐意提供任何人需要或会觉得有帮助的任何信息。谢谢!

【问题讨论】:

  • 你的 Java 代码是如何到达声卡的?
  • 我还没有编写java代码来访问声卡,我假设java使用系统默认值。我将如何告诉 java 到达声卡?
  • 您目前如何播放声音?
  • 我一直在使用这个测试文件,jsresources.org/examples/SimpleAudioPlayer.java.html,当我播放文件时,这个文件会导致之前描述的问题。文件播放,但它是我的笔记本电脑内部声音而不是我的声卡。
  • 好的,如果它可以帮助任何人解决问题,如果我使用 OpenJDK java 6 运行时而不是 sun java,我可以正确地获得声音(无需任何设置或任何东西)。知道为什么会有差异,某种类型的配置设置或其他什么吗?

标签: java audio usb alsa


【解决方案1】:

警告:我不熟悉 JavaSound。

根据提供的示例代码,它看起来像

DataLine.Info   info = new DataLine.Info(SourceDataLine.class, audioFormat);

line 是请求播放机制的,并且你提供的音频格式与内置声卡匹配。

您需要找出哪些机制可用于明确选择给定的机制,而不仅仅是“足够好”的第一个机制。

【讨论】:

  • 如果我错了,请纠正我,但不是从我正在阅读的声音文件中获得的 audioFormat 吗?我很确定这只是为我们提供了有关文件设置的信息。我认为问题可能与使用错误混合器的java有关,但我不确定。你知道吗?
猜你喜欢
  • 2011-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多