簡體   English   中英

將實時音頻流保存到Java中的Wave文件

[英]save live audio streaming to wave file in java

我現在使用Java服務器中的DatagramSocket從Android客戶端獲取音頻,現在我想保存已接收到的音頻文件。

Java服務器代碼為:

private static void receiveAudioFromAndroidClient() {
    try {
        DatagramSocket serverSocket = new DatagramSocket(50005);
        serverSocket1 = new ServerSocket(8072);


        byte[] receiveData = new byte[4096];
        // ( 1280 for 16 000Hz and 3584 for 44 100Hz (use AudioRecord.getMinBufferSize(sampleRate, channelConfig, audioFormat) to get the correct size)

        format = new AudioFormat(sampleRate, 16, 1, true, false);

        while (status == true) {
            DatagramPacket receivePacket = new DatagramPacket(receiveData,
                    receiveData.length);

            serverSocket.receive(receivePacket);

            ByteArrayInputStream baiss = new ByteArrayInputStream(receivePacket.getData());

            ais = new AudioInputStream(baiss, format, receivePacket.getLength());


            // A thread solve the problem of chunky audio
            new Thread(new Runnable() {
                @Override
                public void run() {
                    toSpeaker(receivePacket.getData());
                }
            }).start();
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

請幫我

使用AudioSystem將音頻數據寫入文件,如下所示:

AudioInputStream ais = new AudioInputStream(...);
AudioSystem.write(ais, AudioFileFormat.Type.WAVE, new File("audio.wav"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM