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

标签 java api audio implementation

我正在寻找一种方法来选择一个特定的麦克风来捕获声音。我发现有混音器,具有 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/

相关文章:

java - Maven 编译无提示地失败 - Unresolved 编译问题

java - 具有 MongoDB Java 集合的动态 POJO 类型

main 方法之外的 Java 类实例

javascript - Chrome 扩展程序 : storage listener for only one stored variable

javascript - 使用 POST 请求生成 GUID - Ionic

api - api是否像bytcode一样提供多平台功能

ios - 使用 AVAudioPlayer 播放声音后恢复背景音频

java - java中前1000个质数的CodeEval求和

audio - 1帧由左右音频组成?

android - Android Audio Project中未处理的异常