如何直播音频(并保存到文件)

时间:2019-06-17 16:20:21

标签: kotlin javax.sound.sampled

我想使用javax.sound直播声音(并将音频以固定的时间间隔(例如一小时)保存到文件中)。

我在这里遵循了javax.sound的指南:https://www.developer.com/java/other/article.php/1565671/Java-Sound-An-Introduction.htm,但这不是用于实时流的(但是使用线程)。 我已经看到通过套接字在网络上完成流传输,但这对我来说是不必要的(并且可能性能较低): Live audio stream java

我特别不知道如何交换其他Stack用户拥有的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
        }

我希望获得这种流传输功能,并能够接收发送的数据并将其复制以保存到文件中

0 个答案:

没有答案