2016-04-26 14 views
0

私は音波を記録するための小さなリアルタイムアプリケーションを開発しています。録音、リスニングの2つのモジュールがあります。 ここで動作するはずです:Javaの録音とキャプチャ

  1. プログラムがリスニングを開始します。
  2. 音波が到着しました。
  3. プログラムは信号が到着したことを認識し、それを記録する を開始します。
  4. 信号が終了すると(音量が上がっていない)、プログラムは の記録を停止し、結果をファイルに保存します。

信号が終わったときを認識するために、録音と同時にウェーブ(キャプチャ)を聴く必要があるため、サウンドが終わったときを検出できます。

は、これを実現するために、iv'eは、JavaサウンドAPIを使用するが、私は一つの問題を有する:

  • ターゲットデータラインオブジェクトが記録スレッドと捕獲 - の間で共有されていますスレッド。この場合、2つのスレッドが同じターゲットデータライン上で動作しています。キャプチャスレッドとレコーダスレッド。 いくつかのリアルタイムの問題があります。

私は2つのターゲットデータラインを記録しようとしましたが、キャプチャのためにオープンしようとしましたが、2番目のターゲットデータラインをオープンしようとすると例外がスローされます。

問題を修正するにはどうすればよいですか? 助けてください。

答えて

0

TargetDataLineへの排他的アクセス権を持つ1つのスレッドを使用する必要があります。このスレッドは、録音スレッドとリスニングスレッドが購読できるイベントを生成することができます。

関連する問題