获得另一个Java程序';s声音

获得另一个Java程序';s声音,java,audio,javasound,recording,Java,Audio,Javasound,Recording,我正在写一个录像节目,进展很顺利。我可以从屏幕上录制麦克风和视频。但是,我也希望能够从另一个Java程序中获取声音,然后将它们与视频同步。基本上,录制其他程序播放的音频 有没有办法做到这一点?我对声音很陌生,读过一点。我想我需要设置一个混音器,但我不确定是否可以通过这种方式从另一个Java程序中获取声音。这在Java声音中是不可能的,不是因为Java声音有任何特殊的问题,而是因为Java构建的音频API并不都支持此功能。(例如mac上的核心音频和windows上的ASIO。不确定linux上的A

我正在写一个录像节目,进展很顺利。我可以从屏幕上录制麦克风和视频。但是,我也希望能够从另一个Java程序中获取声音,然后将它们与视频同步。基本上,录制其他程序播放的音频


有没有办法做到这一点?我对声音很陌生,读过一点。我想我需要设置一个混音器,但我不确定是否可以通过这种方式从另一个Java程序中获取声音。

这在Java声音中是不可能的,不是因为Java声音有任何特殊的问题,而是因为Java构建的音频API并不都支持此功能。(例如mac上的核心音频和windows上的ASIO。不确定linux上的ALSA,但我认为它也不支持这一点)


如果您在windows上,想要编写JNI/JNA代码,您可以在一个音频API上使用支持此功能的PortAudio(抱歉,我记不起是哪一个)。

遗憾的是,Java的声音API非常缺乏。是的,我注意到了这一点。即使使用外部API,是否有任何方法可以让它工作?是否可以重新编程“其他”Java程序?这个程序是否允许您指定混音器?我还想知道如何将Java音频程序设置为向录音机发送ByTestStream而不是音频。甚至,设置录音机,使其具有第二个接口,用于播放混音的音频。这可能会有最好的表现。(我在这里完全是头脑风暴,我真的没有做太多关于使用TargetDataLine获取行的工作。)我也没有,真的。我对这不太了解。我能做这个吗?还是根本不起作用?我不这么认为。FFMPEG与Java的问题相同:该功能必须由底层的audio API.Ah提供。那么,我假设不使用JNI/JNA是不可能的吗?问题是:您运行的平台能做到这一点吗?有些能,有些不能。如果可以,那么你需要想出一些方法来做你想做的事情,可能是JNI/JNA,但是根据你的需要,你可能可以启动一个单独的进程来做你想做的事情。我目前正在使用windows,这个程序的主要用户将是windows。