Java - 记录和捕获
Posted
技术标签:
【中文标题】Java - 记录和捕获【英文标题】:Java - recording and capturing 【发布时间】:2016-04-26 12:34:05 【问题描述】:我正在开发一个小型实时应用程序来记录声波。它有两个模块:录音,听力。 这是它应该如何工作的:
-
程序开始收听。
声波到达。
程序识别到信号已到达,并启动
记录下来。
当信号结束(不再响亮)时,程序停止
记录并将结果保存到文件中。
所以为了识别信号何时结束 - 我们应该在录音的同时收听波(捕获),这样我们就可以检测到声音何时结束。
为了实现这一点,我使用了 Java 声音 API,但我有一个问题:
目标数据线对象在记录线程和捕获线程之间共享。在这种情况下,两个线程在同一目标数据行上工作:捕获线程和记录器线程。 这会导致一些实时问题。我尝试打开两条目标数据行,一条用于记录,一条用于捕获,但程序在尝试打开第二条时抛出异常。
我该如何解决这个问题? 请帮忙。
【问题讨论】:
【参考方案1】:您需要使用对TargetDataLine
具有独占访问权限的单个线程。然后,该线程可以生成您的录音和收听线程可以订阅的事件。
【讨论】:
以上是关于Java - 记录和捕获的主要内容,如果未能解决你的问题,请参考以下文章