1

标题基本上讲述了我的故事,我想从 java 程序直接将音频发送到扬声器系统,我想尝试使用从音频文件中获得的字节直接写入 linux 中 /dev/ 中的扬声器,我' 不确定会起作用,但在 Windows 中,我很难过。我在想这样的事情:

public void play(byte[] audio){
   if(OS.isWindows){//This is where i have no idea, maybe write to javasound with jmf?
}
if(OS.isLinux){
    BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream("/dev/blahblah");
    bout.write(audio)
    bout.flush();
    bout.close();
 }

我的代码对我来说似乎很简单,不是我想要复杂的代码,而是我想要工作代码。我实际上没有尝试过上面的代码,因为担心我不知道我在做什么,并且可能会伤害或中断我的电脑中的某些东西。

4

1 回答 1

0

你不能再只是cat tune.wav > /dev/dsp(不是没有一些技巧),而且你尝试这听起来太低级的方式 - 所以选择一个图书馆。

您可能会对javax.sound(简单)和JMF(更多功能)等标准文件感到满意。

或者您可以尝试第三方库,例如Jogamp JOAL(功能丰富),您可以在 Windows 和 Linux 上使用它(通过本机库)。

编辑:对于 MP3

  1. 刚刚注意到使用 Java 7 的javafx可以轻松完成,请参阅此答案

  2. 要使用 javax.sound 自己动手:按照本教程创建SPI * 来创建处理 MP3的AudioFileReader 。注意前面的 SPI 链接是 javax.sound 特有的,但SPI 是一个笼统的概念

  3. 或者,JMF 可以使用 this处理 mp3,如果您确定提供单个工件,您可以查找如何嵌套 jars 等。

于 2013-07-17T23:03:30.737 回答