当我运行这段代码时,我得到了4个对象的输出,它们都是输入的。我想要的只是我的电脑的默认输出(Macbook 2014年末支持OSX 10.9.5)。
public static void aPlayer(){
Mixer.Info[] mixInfos = AudioSystem.getMixerInfo();
for (Mixer.Info info : mixInfos){
System.out.println("Name: " + info.getName() + ",
Description: " + info.getDescription());
}
}此代码返回:
Name: Java Sound Audio Engine, Description: Software mixer and synthesizer
Name: Built-in Microph, Description: No details available
Name: Soundflower (2ch), Description: No details available
Name: Soundflower (16ch), Description: No details available 这段代码与this tutorial的开头完全相同,对编写它的人有效,但它似乎不适用于我,我也不知道为什么。
发布于 2015-05-03 16:20:03
您可以尝试输出有关每个混音器的更多信息:
for (Mixer.Info info : mixInfos){
System.out.println("Name: " + info.getName() + ",
Description: " + info.getDescription());
Mixer mixer = AudioSystem.getMixer(info);
if (mixer != null) {
Line.Info[] sourceLineInfo = mixer.getSourceLineInfo();
if (sourceLineInfo != null) {
for (final Line.Info info : sourceLineInfo)
System.out.println(info.toString());
}
Line.Info[] targetLineInfo = mixer.getTargetLineInfo();
if (targetLineInfo != null) {
for (final Line.Info info : targetLineInfo)
System.out.println(info.toString());
}
}
}如果这显示了有关SourceDataLine或Clip的信息,则可以在该混合器上进行输出。如果你有TargetDataLine,你可以做输入。
https://stackoverflow.com/questions/30007361
复制相似问题