Java - 记录和捕获

Posted

技术标签:

【中文标题】Java - 记录和捕获【英文标题】:Java - recording and capturing 【发布时间】:2016-04-26 12:34:05 【问题描述】:

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

    程序开始收听。 声波到达。 程序识别到信号已到达,并启动 记录下来。 当信号结束(不再响亮)时,程序停止 记录并将结果保存到文件中。

所以为了识别信号何时结束 - 我们应该在录音的同时收听波(捕获),这样我们就可以检测到声音何时结束。

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

目标数据线对象在记录线程和捕获线程之间共享。在这种情况下,两个线程在同一目标数据行上工作:捕获线程和记录器线程。 这会导致一些实时问题。

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于Java - 记录和捕获的主要内容,如果未能解决你的问题,请参考以下文章

捕获所有异常并记录信息

JAVA捕获MYSQL主键冲突异常 示例如Exception ex 对应的异常 如何捕获,只要捕获,求满意答案

Java全局异常捕获处理

如何防止哨兵捕获某些未捕获的异常和记录消息的事件?

记录和捕获 NTFS 活动

PyDev unittesting:如何在“捕获的输出”中捕获记录到 logging.Logger 的文本