Я хотел бы использовать javax.sound для воспроизведения потокового звука в реальном времени (и сохранения этого аудио в файл через регулярные промежутки времени, скажем, один час).
Я следовал руководству по javax.sound здесь: https://www.developer.com/java/other/article.php/1565671/Java-Sound-An-Introduction.htm, но это не предназначено для прямой трансляции (однако используются потоки).Я видел потоковую передачу через сокет по сети, но это мне не нужно (и, вероятно, менее производительно): Поток живого аудио java
Я специально не знаю, что поменять этоDatagramSocket другой пользователь стека имел:
try
{
line = (TargetDataLine) AudioSystem.getLine(info);
int buffsize = line.getBufferSize()/5;
buffsize += 512;
line.open(format);
line.start();
int numBytesRead;
byte[] data = new byte[buffsize];
addr = InetAddress.getByName("127.0.0.1");
DatagramSocket socket = new DatagramSocket();
while (true) {
// Read the next chunk of data from the TargetDataLine.
numBytesRead = line.read(data, 0, data.length);
// Save this chunk of data.
dgp = new DatagramPacket (data,data.length,addr,50005);
socket.send(dgp);
}
}catch (LineUnavailableException e) {
e.printStackTrace();
}catch (UnknownHostException e) {
// TODO: handle exception
} catch (SocketException e) {
// TODO: handle exception
} catch (IOException e2) {
// TODO: handle exception
}
Я надеюсь получить эту функцию потоковой передачи с возможностью принимать отправляемые данные и дублировать их для сохранения в файл