簡體   English   中英

如何使用 java 聲音 API 從麥克風捕獲聲音?

[英]How to capture sound from microphone with java sound API?

The tutorial http://download.oracle.com/javase/tutorial/sound/capturing.html does not cover how to select microphone.

我正在使用以下代碼枚舉混音器

System.out.println("Searching for microphones");
for(Mixer.Info mixerinfo : AudioSystem.getMixerInfo()) {
    mixer = AudioSystem.getMixer(mixerinfo); 

    //System.out.println(mixerinfo.toString());
    if( mixer.isLineSupported(Port.Info.MICROPHONE) ) {
        mixers.add(mixer);
        System.out.println(Integer.toString(mixers.size()) + ": " + mixerinfo.toString());
    }
}

即通過麥克風輸入。 但是接下來,有一個混音器,我無法閱讀。

如果我使用mixer.getTargetLineInfo() ,我會收到一個Info的數組,當傳遞給mixer.getLine時會返回一個 object 類型的com.sun.media.sound.PortMixer$PortMixerPort ,這是沒有記錄的。

如果我使用mixer.getTargetLines()我得到一個空數組。

如果我創建自己的DataLine.Info並將其傳遞給混音器的getLine ,我會得到不受支持的異常。

那么該怎么辦?

左場建議。

在沿AudioPlotPanel或更簡單的RMS 音量線的組件中提供每條聲音線的可視化渲染。 用戶不應該花費太長時間來確定他們正在通過哪個聲線。 ;)

我正在嘗試做同樣的事情。 我還沒有找到一個好的解決方案,但我可以告訴你這行不通,因為你正試圖從端口混合器中獲取數據線。 如果我弄清楚了,我一定會告訴你的。

暫無
暫無

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

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