2017-08-10 51 views
0

我正在使用java的javax.sound.sampled軟件包處理記錄和回放音頻的簡單程序。 如果Line(TargetDataLine & SourceDataLine)是線程安全的,我在java 8引用中找不到任何提及。當寫入和排出方法阻塞並且似乎不響應線程中斷時,這在回放(使用SourceDataLine)時尤其是問題。javax.sound.sampled多線程安全

我可以關閉另一個線程的線實例以獲得原始線程從阻塞漏或寫方法釋放?

回答

0

通常,我只通過標記它所在的類來訪問SourceDataLine。包裝類被賦予一個名爲'running'的公共volatile變量布爾值,並且SDL所在的循環被while(running)條件包圍。這種方法發生的延遲會隨着寫入緩衝區的大小而變化。

您可能想要添加其他標誌。但無論如何,圍繞SDL的while循環似乎是對這些標誌進行解釋和行動的一個合適時機。