标题基本上讲述了我的故事,我想通过java程序将音频直接发送到扬声器系统,我正在考虑使用从音频文件中获取的字节直接写入/ dev / in linux中的扬声器,我不确定会工作,但在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();
}
我的代码对我来说似乎很简单,而不是我想要复杂的代码,但我想要工作代码。我实际上没有尝试上面的代码,担心我不知道我在做什么,可能会伤害或打断我的电脑中的东西。
答案 0 :(得分:0)
你不能再cat tune.wav > /dev/dsp
了(不是没有some tricks),以及你尝试听起来级别太低的方式 - 所以选择一个库。
您可能会对标准版有好运,例如javax.sound(简单)和JMF(更多功能)。
或者您可以尝试第三方库,例如Jogamp JOAL(功能丰富),您可以将其用于Windows和Linux(通过本机库)。
编辑:适用于MP3
刚刚注意到Java 7的javafx您可以轻松完成,请参阅this answer
使用javax.sound滚动自己:按照本教程创建SPI *来创建AudioFileReader处理MP3。 (注意以前的SPI链接是javax.sound特定的,但是SPI is a general concept )
或者JMF可以处理mp3 with this,如果您决定提供单个工件,您可以查找如何嵌套jar等。