在java中录制流媒体音频?

我正在尝试设置一个程序来记录互联网音频流的一部分,并将其保存到文件(最好是mp3或wav)。 我到处寻找,我找不到任何体面的方法来做到这一点。 我找到了两个看起来像他们工作的不同的库(NativeBass和Xuggle),但是它们都不支持我需要的64位窗口。

有谁知道使用java保存一部分互联网音频流的简单方法? (如果重要的话,那就是“audio / mpeg”流)。

编辑:好的,我找到了一种似乎有效的方法。 但我还有一个问题

import java.net.URLConnection; import java.net.URL; import java.io.InputStream; import java.io.OutputStream; import java.io.FileOutputStream; import java.io.File; public class Test{ public static void main (String[] args){ try{ URLConnection conn = new URL("http://streamurl.com/example").openConnection(); InputStream is = conn.getInputStream(); OutputStream outstream = new FileOutputStream(new File("C:/Users/Me/Desktop/output.mp3")); byte[] buffer = new byte[4096]; int len; long t = System.currentTimeMillis(); while ((len = is.read(buffer)) > 0 && System.currentTimeMillis() - t <= 5000) { outstream.write(buffer, 0, len); } outstream.close(); } catch(Exception e){ System.out.print(e); } } } 

经过一番搜索,我从这里得到了大部分的答案。 但是,我要做的一件事就是只记录一段时间。 如上所示,我尝试仅记录5秒的间隔。

 long t = System.currentTimeMillis(); while ((len = is.read(buffer)) > 0 && System.currentTimeMillis() - t <= 5000) { 

但是,出于这样或那样的原因,录制的音频不是5秒长,它是16.有人知道如何更精确地限制流的长度吗?

如果你想要5秒钟,你可以根据你收到的字节数和音频流的比特率自己计算。