Linux中的這個代碼不工作:我添加了兩行的Java:主增益不支持例外
// Added two lines.
DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat);
SourceDataLine dataLine = (SourceDataLine) AudioSystem.getLine(info);
// Adjust the volume on the output line.
if(dataLine.isControlSupported(FloatControl.Type.MASTER_GAIN)) {
// If inside this if, the Master_Gain must be supported. Yes?
FloatControl volume = (FloatControl) dataLine.getControl(FloatControl.Type.MASTER_GAIN);
// This line throws an exception. "Master_Gain not supported"
volume.setValue(100.0F);
}
這是正常的嗎?我需要做些什麼來解決這個問題?
在Windows中它工作。
謝謝Martijn。
這似乎是與「數據線」的你使用的是執行的問題。什麼是數據線的類型? 我預計getControl ()僅在isControlSupported返回false時引發此異常... – Fortega
您的dataLine在windows和linux中可能不是同一類型的dataline,您可以在兩者中調查dataLine的類型(它是SourceDataLine的子類型) Linux和Windows通過調試此代碼 – Fortega
是的,它是相同類型的行。 –