Mac查询混频器时只显示"Default Audio Device"
Mac only displays "Default Audio Device" when querying mixers
当我在我的 Macintosh(MacPro 13 英寸;10.13.1)上查询所有混音器时,显示的只是 "Default Audio Device, version Unknown Version".
的 6 次迭代
我只是想知道为什么会这样,以及我该如何解决它。如果重要的话,我正在通过 NetBeans 8.2
编译代码
方法如下:
public static void displayMixers() {
Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo(); //save info of all mixers on system to an array
System.out.println("Available mixers: ");
for (int i = 0; i < mixerInfo.length; i++) { //for loop that iterates over the array we just established
System.out.println(mixerInfo[0].toString()); //print description of mixer each time
}
}
你在 mixerInfo
中的索引是 [0]
所以你只列出第一个条目 6 次,使用 [i]
:
for (int i = 0; i < mixerInfo.length; i++) {
System.out.println(mixerInfo[i]);
}
请注意,您不需要 toString()
调用,因为 println
会为您完成。
假设您使用的是 Java 5 或更高版本,最好使用 'enhanced for loop' 以消除使用错误索引的可能性:
for (Mixer.Info info : mixerInfo) {
System.out.println(info);
}
在 Java 8 或更高版本上,您甚至可以使用流:
Arrays.stream(mixerInfo).forEachOrdered(System.out::println);
当我在我的 Macintosh(MacPro 13 英寸;10.13.1)上查询所有混音器时,显示的只是 "Default Audio Device, version Unknown Version".
的 6 次迭代我只是想知道为什么会这样,以及我该如何解决它。如果重要的话,我正在通过 NetBeans 8.2
编译代码方法如下:
public static void displayMixers() {
Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo(); //save info of all mixers on system to an array
System.out.println("Available mixers: ");
for (int i = 0; i < mixerInfo.length; i++) { //for loop that iterates over the array we just established
System.out.println(mixerInfo[0].toString()); //print description of mixer each time
}
}
你在 mixerInfo
中的索引是 [0]
所以你只列出第一个条目 6 次,使用 [i]
:
for (int i = 0; i < mixerInfo.length; i++) {
System.out.println(mixerInfo[i]);
}
请注意,您不需要 toString()
调用,因为 println
会为您完成。
假设您使用的是 Java 5 或更高版本,最好使用 'enhanced for loop' 以消除使用错误索引的可能性:
for (Mixer.Info info : mixerInfo) {
System.out.println(info);
}
在 Java 8 或更高版本上,您甚至可以使用流:
Arrays.stream(mixerInfo).forEachOrdered(System.out::println);