2011-01-12 46 views
2

我試圖在Java中的MP3播放器,我不能老是找出如何控制它的體積。如何設置的SourceDataLine的體積在Java中

我已經試過這樣的事情:我寫直到這個代碼

  // Adjust the volume on the output line. 
     if (dataLine.isControlSupported(FloatControl.Type.MASTER_GAIN)) { 
      FloatControl volume = (FloatControl) dataLine.getControl(FloatControl.Type.MASTER_GAIN); 
      volume.setValue(100.0F); 
     } 

一切工作正常,但顯然數據線不是控制支持,因爲它跳過了這個if語句。

我的問題是:你有任何想法,爲什麼這種情況正在發生,我怎麼能解決這個問題,這樣我可以控制我的應用程序的音量?

回答

1

你有沒有嘗試過,看看有什麼dataLine.getControls()將返回?

獲取所述一組與該行相關聯 控件。線路打開時,某些控件可能只有 可用。如果 沒有控件,這種方法如果你想量不會要測試的FloatControl.Type.VOLUME控制 返回長度爲0

的陣列?

+0

dataLine.getControls()返回此 主增益與當前值:0.0分貝(範圍:-80.0 - 6.0206) 靜音控制電流值:False 餘額與電流值:0.0(範圍:-1.0 - 1.0) 泛用電流值:0.0(範圍:-1.0 - 1.0) I`ve一直與我在此期間代碼和搞亂意識到Master Gain的價值實際上已經發生了變化,但我聽不到歌曲中的任何傷害 – Liviu 2011-01-12 13:23:53

1

玉傢伙,

我發現我的爛攤子了。我其實忘了調用dataLine.open(audioFormat)函數來獲取系統資源。

因此,代碼workes就好,如果任何人有這樣那樣的問題太

相關問題