簡體   English   中英

在Java應用程序中控制音量

[英]Controlling volume in a java application

我在Java上還很新。 我需要在Java應用程序中控制音量(調高/調低,靜音)。 我找不到辦法。 我正在Linux系統上進行開發(以獲取信息)。

我很討厭這段代碼:

Java代碼:

Port lineIn;
FloatControl volCtrl;
try {
  mixer = AudioSystem.getMixer(null);
  lineIn = (Port)mixer.getLine(Port.Info.LINE_IN);
  lineIn.open();
  volCtrl = (FloatControl) lineIn.getControl(

      FloatControl.Type.VOLUME);
  // Assuming getControl call succeeds, 
  // we now have our LINE_IN VOLUME control.
} catch (Exception e) {
  System.out.println("Failed trying to find LINE_IN"
    + " VOLUME control: exception = " + e);
}

但是我得到了執行

Failed trying to find LINE_IN VOLUME control: exception = java.lang.IllegalArgumentException: Line unsupported: COMPACT_DISC source port

謝謝你的幫助

有時控件是嵌套的,這使得與平台無關的解決方案變得困難。 我編寫了一個實用程序類,該類的用法如下:

Audio.setMasterOutputVolume(0.5f);

源代碼在這里: https : //github.com/Kunagi/ilarkesto/blob/master/src/main/java/ilarkesto/media/Audio.java

Stackoverflow用戶可以根據WTFPL的條款使用Audio.java中的代碼。

我認為沒有一個常量叫做VOLUME。 它的MASTER_GAIN。 所以你應該做

volCtrl = (floatControl) lineIn.getControl(FloatControl.Type.MASTER_GAIN);
volCtrl.setValue(you_custom_value);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM