Java - 记录和捕获

时间:2016-04-26 12:34:06

标签: java api audio record capture

我正在开发一个小型实时应用程序来录制声波。它有两个模块:录音,听音。 这是它应该如何工作:

  1. 程序开始聆听。
  2. 声波到来。
  3. 程序识别出信号已到达并启动 记录它。
  4. 当信号结束时(没有更响亮的声音),程序停止 记录并将结果保存到文件中。
  5. 因此,为了识别信号何时结束 - 我们应该听录音(捕捉)和录音,这样我们就可以检测声音何时结束。

    为了实现这一点,iv使用了Java声音API,但我有一个问题:

    • 目标数据行对象在记录线程和捕获线程之间共享。在这种情况下,两个线程正在处理同一个目标数据行:捕获和记录器线程。 这有些实时问题。

    我试图打开两个目标数据行,一个用于记录,一个用于捕获,但程序在尝试打开第二个时抛出异常。

    我该如何解决这个问题? 请帮忙。

1 个答案:

答案 0 :(得分:0)

您需要使用一个对TargetDataLine具有独占访问权限的线程。然后,该线程可以生成您的录制和侦听线程可以订阅的事件。