奇妙なプログラミングの問題に直面しています。それは私を疲れさせましたが、解決策は見つかりませんでした!
私のプログラムは主に、そのハードウェアからオーディオ メッセージを受信するために外部ハードウェアから発生するイベント (Java リスナー) に依存しています。
- 受信したメッセージを、データを返す別のクラスの静的メソッド「decode」に渡します
- 次に、FileOutputStream を開き、これらのデータ「オーディオ」をファイルに書き込み、FileOutputStream を閉じます。
- 別のクラスから静的メソッド「play」を呼び出して、オーディオ ファイルを再生します。
問題は、「Play」メソッドが初めて呼び出されるたびに、正しく実行されますが、イベントの発生が停止し、プログラムが終了しますが、例外はありません。プレイ方法をコメントアウトすると全てOK!
プログラムの終了を引き起こすメソッドについて何か考えがありますか?
public void messageReceived(int to,Message message)
{
speexAudioMsg msg = (speexAudioMsg)message;
try{
byte[] output = jspeexDecoder.decode(msg.get_frame());
os = new FileOutputStream(file);
os.write(output);
os.close();
Player.play();
}
catch (IOException ex) {ex.printStackTrace();}
}