gpt4 book ai didi

java - java直接发送音频到扬声器

转载 作者:行者123 更新时间:2023-12-01 04:33:09 24 4
gpt4 key购买 nike

标题基本上讲述了我的故事,我想从 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();
}

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

最佳答案

你不能再只是 catune.wav >/dev/dsp (没有 some tricks 就不行了),而且你尝试这个的方式听起来太低级了- 所以选择一个库。

您可能会幸运地使用标准的,例如 javax.sound (简单)和JMF (更多功能)。

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

编辑:对于 MP3

  1. 刚刚注意到 Java 7 的 javafx你可以轻松做到,请参阅this answer

  2. 要使用 javax.sound 进行自己的开发:请按照有关创建 SPI 的教程进行操作* 创建 AudioFileReader处理 MP3。 (请注意,前面的 SPI 链接是特定于 javax.sound 的,但是 SPI is a general concept )

  3. JMF 也可以处理 mp3 with this ,如果您决定提供单个工件,则可以查找如何嵌套 jar 等。

关于java - java直接发送音频到扬声器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17711572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com