Как транслировать потоковое аудио (и сохранить в файл) - PullRequest
0 голосов
/ 17 июня 2019

Я хотел бы использовать 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
        }

Я надеюсь получить эту функцию потоковой передачи с возможностью принимать отправляемые данные и дублировать их для сохранения в файл

...