2017-08-10 90 views
0

我正在使用java的javax.sound.sampled软件包处理记录和回放音频的简单程序。 如果Line(TargetDataLine & SourceDataLine)是线程安全的,我在java 8引用中找不到任何提及。当写入和排出方法阻塞并且似乎不响应线程中断时,这在回放(使用SourceDataLine)时尤其是问题。javax.sound.sampled多线程安全

我可以关闭另一个线程的线实例以获得原始线程从阻塞漏或写方法释放?

回答

0

通常,我只通过标记它所在的类来访问SourceDataLine。包装类被赋予一个名为'running'的公共volatile变量布尔值,并且SDL所在的循环被while(running)条件包围。这种方法发生的延迟会随着写入缓冲区的大小而变化。

您可能想要添加其他标志。但无论如何,围绕SDL的while循环似乎是对这些标志进行解释和行动的一个合适时机。