gpt4 book ai didi

java - 什么是 com.sun.media.sound.PortMixer-s 类?

转载 作者:行者123 更新时间:2023-11-30 05:02:19 25 4
gpt4 key购买 nike

我正在寻找一种方法来选择一个特定的麦克风来捕获声音。我发现有混音器,具有 isLineSupported(Port.Info.MICROPHONE)==true

但是这些混音器属于未记录的类com.sun.media.sound.PortMixer,我对它们无能为力。

例如,我无法从这些混合器的 TargetLines 读取数据,因为它们不是 TargetDataLine 类型。

这些 blender 的用途是什么?只是为了制造一些困惑?

最佳答案

仔细研究后,我认为这可能会有所帮助。

在 AudioSystem.getMixerInfo() 的返回值上运行此函数

mixerDetails.getDescription()
mixerDetails.getName()

给出以下内容:

Direct Audio Device: DirectSound Playback
Primary Sound Driver

Direct Audio Device: DirectSound Playback
Realtek HD Audio output

Direct Audio Device: DirectSound Playback
Microsoft LifeChat LX-3000

Direct Audio Device: DirectSound Capture
Primary Sound Capture Driver

Direct Audio Device: DirectSound Capture
Microsoft LifeChat LX-3000

Direct Audio Device: DirectSound Capture
Realtek HD Audio Input

Software mixer and synthesizer
Java Sound Audio Engine

Port Mixer
Port Realtek HD Audio output

Port Mixer
Port Realtek HD Audio Input

Port Mixer
Port Microsoft LifeChat LX-3000

我对“端口混合器”“端口 Microsoft LifeChat LX-3000”也有同样的问题,它是“com.sun.media.sound.PortMixer”的一个实例。调用

AudioSystem.getTargetDataLine(格式,mixerInfo)

在此混合器上给出以下内容:

Exception in thread "main" java.lang.IllegalArgumentException: Line unsupported: interface TargetDataLine

下载源代码并在 eclipse 中调试运行表明,对于我的此端口实例,它只有 javax.sound.sampled.Port.class 可用,因此调用 AudioSystem.getTargetDataLine ,它在幕后执行以下操作:

DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);
Mixer mixer = AudioSystem.getMixer(mixerinfo);
return (TargetDataLine) mixer.getLine(info);

失败 - portMixer 中只有 javax.sound.sampled.Port.class 行可用。在我的端口中,该线路是扬声器,但即使不是,内部存储的目标线似乎都是端口,这并不是特别有用。甚至类里面的评论都说“仅提供端口的混音器。”

所以无论它的用途是什么,它似乎都没有获取源/目标行。说实话,我看不出它有什么用。我会尝试查看您系统上的其他混音器。如果您的和我的一样,您可以使用直接声音捕获来代替。

关于java - 什么是 com.sun.media.sound.PortMixer-s 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6262983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com