2012-04-04 6 views
1

CMU sphinxライブラリを使用してサウンドを録音しています。私は私のJavaアプリケーションを開始すると、以下のように、私は一度だけ認識装置およびConfiguration Managerを割り当てる:マイクを使用してサウンドを一度録音できますが、マイクを初めて起動することはできません

 cm = new ConfigurationManager(soundPart.class.getResource("hellongram.config.xml")); 
     recognizer = (Recognizer) cm.lookup("recognizer"); 
     recognizer.allocate(); 

また、私は自分のアプリケーション内のレコードのサウンドボタンを持っています。ユーザーがクリックすると、次のコードを使用してサウンドを録音します。

Microphone microphone = (Microphone)MR.sp.cm.lookup("microphone"); 
    if (!microphone.startRecording()) { 
     System.out.println("Cannot start microphone."); 
     MR.sp.recognizer.deallocate(); 

     System.exit(1); 
    } 
    //MR.sp.pleaseStartSpeaking.setVisible(true); 
    while(true){ 
    Result result = MR.sp.recognizer.recognize(); 
    if(result!=null){ 
     String resultText = result.getBestFinalResultNoFiller(); 
     MR.sp.lblYouSearched.setVisible(true); 
     MR.sp.lblNewLabel.setVisible(true); 
     MR.sp.lblNewLabel.setText(resultText); 
     MR.textQuery = resultText.toLowerCase(); 
     break; 
    } 
    } 

これは初めてのことです。ただし、ユーザーが2回目に録音ボタンをクリックすると、「Can not start mic」というエラーが発生します。私はここで間違っています。 2回目にマイクを取得できない場合

答えて

0

マイクのRecordingThread hereを見て、そのコードhereが使用したページと使用したコードとの違いあなたが使用したコードは、マイクを起動したり停止したりすることはありません。 RecordingThreadはstart()とstop()を簡単に呼び出すことができるので、あなたが何をしているかのように見えます。

+0

サンプルコードを教えてもらえますか?ただ文書を見ても私を大いに助けてくれません – Programmer

+0

また、私の上記のコードでは、私が記録したいときはいつでも、私はマイクを手に入れます。これには何が問題なのですか? – Programmer

関連する問題