[英]Java Sound API: Attempt to Do Live Microphone Input Monitoring is Slow
[英]Java Sound API: Recording and monitoring same input source
如果使用TargetDataLine
來捕獲音頻(類似於Java教程中給出的示例) ,則可以訪問名為“數據”的字節數組。 您可以遍歷此數組以測試音量水平,然后再輸出。
要進行音量測試,您必須將字節轉換為某種有意義的PCM數據。 例如,如果格式是16位立體聲little-endian,則可能需要兩個字節,然后組裝為有符號的short或有符號的標准化浮點,然后進行測試。
對於在發布“解決方案”之前沒有仔細查看您的示例,我深表歉意。
我建議您擴展InputStream
,制作一個也執行音量測試的自定義版本。 重寫“ read”方法,以便它從測試卷的代碼中獲取返回的字節。 您必須修改卷測試代碼以按字節工作並傳遞所需的字節。
在為output-to-wav階段創建AudioInputStream
時,您應該能夠將此擴展InputStream
用作參數。
我已經使用這種方法通過兩個數據源成功保存了音頻:一次來自預先填充的數組,一次來自通過我編寫的“混合器”的流音頻混合,以結合音頻數據源。 后者將更像您需要執行的操作。 不過,我還沒有從麥克風來源做到這一點。 但是據我所知,同樣的方法應該行得通。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.