でミキサーを列挙していAudioSystem.getMixerInfo()
ます。戻ってきたミキサーが重複している場合があることがわかりました。調査の結果、返された 4 つのミキサーはクラスDirectAudioDevice
であり、6 つのミキサーはクラス であることがわかりPortMixer
ました。どちらのクラスも Java API の文書化されていないクラスです。
ユーザーに各マイクのコピーを 1 つだけ提示したいのですが、私の場合は と の両方が返されましDirectAudioDevice
たPortMixer
。
問題は、これら 2 つのクラスの違いと、実行時にそれらを区別する方法です。
アップデート
DirectAudioDevice
各マイクのバージョンは on で何も返さないのgetLine(Port.Info.MICROPHONE)
に対し、マイクのバージョンは ongetTargetLineInfo()
でPortMixer
何かgetLine(Port.Info.MICROPHONE)
を返し、ターゲットとソースの両方の行を返し、ターゲットには「ラウドネス」というタイトルが付けられていることがわかりました...