的Mac OS X 10.10.3爪哇 - 輸入音頻線路不具有任何控制
試圖控制麥克風(基本上,系統麥克風的音量設置爲100%+希望取消靜音它並試圖解決這個問題https://discussions.apple.com/message/29309845#29309845)。
(代碼改善)
import javax.sound.sampled.*;
public class MicMacMax {
public static void main(String[] args) {
Mixer.Info microphone = null;
for (Mixer.Info info : AudioSystem.getMixerInfo()) {
System.out.println("Potential mixer: " + info.getName());
if (info.getName().equals("Built-in Input")) {
microphone = info;
}
}
if (microphone == null) {
System.out.println("Microphone not found");
System.exit(-1);
}
final Mixer mixer = AudioSystem.getMixer(microphone);
try {
mixer.open();
} catch (LineUnavailableException e) {
e.printStackTrace();
System.exit(-1);
}
final Line lineIn;
try {
lineIn = mixer.getLine(mixer.getTargetLineInfo()[0]);
lineIn.open();
if (lineIn.isControlSupported(FloatControl.Type.MASTER_GAIN)) {
System.out.println("Gain supported");
}
final CompoundControl cc = (CompoundControl) lineIn.getControls()[0];
final Control[] controls = cc.getMemberControls();
for (final Control c : controls) {
if (c instanceof FloatControl) {
System.out.println("BEFORE LINE_IN VOL = "
+ ((FloatControl) c).getValue());
((FloatControl) c).setValue((float) 100/100);
System.out.println("AFTER LINE_IN VOL = "
+ ((FloatControl) c).getValue());
}
}
} catch (final Exception e) {
e.printStackTrace();
}
}
}
此代碼拋出:
java.lang.ArrayIndexOutOfBoundsException:0 在MicMacMax.main(MicMacMax.java:24)
這意味着這條線沒有控制。
幫助需要
有沒有在我的代碼中的錯誤?
是,如果任何人都可以試驗驗證碼他們的機器上,並且提供反饋真的很棒。我想孤立這個問題。
- 它可以與某種權限問題連接嗎?
看看第24行,這不是話筒失效,它意味着控制失敗。沒有麥克風控制。你有什麼操作系統? – igorpavlov
windows 8.1,但也檢查贏了7.所以,我認爲這可能是因爲你的操作系統不同,因爲它可能不支持你的麥克風。嘗試更新驅動程序 – Paul
不幸的是,這並不能回答我的問題。 – igorpavlov