2011-06-03 80 views
0

我有一個程序首先播放:「請說出你的名字」。然後記錄名稱。我的代碼記錄問題

部分是:

try { 
    AudioInputStream audio = AudioSystem.getAudioInputStream(new File("sth.wav")); 
    Clip clip = AudioSystem.getClip(); 
    clip.open(audio); 
    clip.start(); 
} 
catch(UnsupportedAudioFileException uae) { 
    System.out.println(uae); 
} 
catch(IOException ioe) { 
    System.out.println(ioe); 
} 
catch(LineUnavailableException lua) { 
    System.out.println(lua); 
} 

r.captureAudio(); 

這裏r是主類的一個實例。

的問題是,該記錄是這樣的:
它首先播放「請輸入您的姓名」,然後播放我與MIC錄音。


我是初學者,沒有太多的Java經驗。

我應該做些什麼改變,以便錄音僅包含麥克風輸入而不是「請輸入您的姓名」?

+1

「請給予直接幫助」請1)提出問題。 2)輸入消息時使用Shift鍵。 3)避免像'pls'&'ur'這樣不​​成熟的無意義詞彙。 – 2011-06-03 06:46:11

+0

對不起,我是堆棧溢出新..我一定會在將來保重 – 2011-06-05 11:36:28

+0

任何人都可以告訴我應該做的修改,使錄音只包含麥克風輸入,而不是「請輸入您的姓名」 – 2011-06-05 11:44:13

回答

0

我不知道我完全理解你的問題。

彈出一個JOptionPane(或模態JDialog)會阻止GUI直到被解散。

如果你彈出一個說「開始錄音」,在錄音結束後直接開始錄音,用「停止錄音」彈出一個新錄音,第二個將停止剩餘的程序語句(但不是錄音本身,只要它在Thread中完成)。

+0

下面是問題:輸出文件播放「請輸入您的名字Karan Dwivedi」;相反,它應該播放「Karan Dwivedi」 – 2011-06-07 08:45:43

+0

@Karan:我不認爲你的描述對解釋非常有幫助。爲什麼不嘗試在[SSCCE](http://pscode.org/sscce.html)中解釋?對於'sth.wav'而不是熱鏈接到[leftright.wav](http://pscode.org/media/#sound) - [http://pscode.org/media/leftright.wav](http: //pscode.org/media/leftright.wav)(也許循環幾次)。 – 2011-06-07 09:00:35

0

嘗試呼叫clip.drain(),這將阻止當前線程,直到剪輯播放完畢。之後,你可以開始捕捉。

+0

它似乎是解決方案..請詳細說明我是初學者 – 2011-06-06 13:12:31

+0

@Karan Dwivedi:如果這真的解決了您的問題,請務必接受答案。 – 2011-06-06 13:39:45