[英]Record streaming audio in 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秒鍾,您可以根據您收到的字節數和音頻流的比特率自行計算。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.