有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用于监控音频的多线程java生产者-消费者线程

我正在用Java制作一个DAW,实际上它比这更基本,我模仿了我曾经拥有的一台旧的Tascam 4音轨录音机。我试着在录音的同时监控音频,尽量减少两者之间的延迟。如果我在同一个线程中写入音频字节,就会有很大的延迟(如果你想看到我的代码,我会发布它,但它似乎无关紧要,因为我认为它需要重写)。我一直在考虑使用生产者、消费者线程和队列来存储中间的字节块。因此,我的producer线程将从TargetDataLine读取字节,并将它们存储在队列中,可能使用了一种返回读取字节数的方法,这样我就可以检查while循环中的EOF。并创建一个并发线程,将队列中存储的字节块(当它们是要写入的字节时)写入SourceDataLine。我的想法是,同时运行的两个线程几乎可以在读取字节的同时写入字节,或者至少比我现在拥有的更好,但我想知道其他人是如何解决这个问题的

此外,如果队列中没有字节,我还需要确保我的消费者线程等待,并在添加字节以再次开始写入字节时收到通知,如果有人会发布一个正确方法同步两个线程的示例,我将不胜感激。我知道它们必须在同步代码块中,我应该使用多个锁吗?我并不是要一个特定于音频的例子,只是一个普通的例子,可以在一个集合中添加一些东西,然后将其删除,非常感谢您的帮助。谢谢


共 (0) 个答案