2011-10-31 9 views
5

私はJavaでかなり新しいです。私は、Javaアプリケーションで音量(音量を上げ下げ、ミュート)を制御する必要があります。私はこれを行う方法を見つけることができませんでした。私はLinuxシステム(情報用)を開発中です。Javaアプリケーションのボリュームを制御する

私は、このコード疲れ:

Javaコード:私は考えていない

答えて

-1

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); 
} 

が、私はあなたの助けをexecption

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

感謝を得ていますVOLUMEという定数です。そのMASTER_GAIN。そうする必要があります

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

* VOLUMEという定数があるか、コンパイルされません。 – wchargin

4

コントロールがネストされることがあり、プラットフォームに依存しない解決が困難になることがあります。私はそのように使用されるユーティリティクラスを書いた:

Audio.setMasterOutputVolume(0.5f); 

ソースコードはここにある:https://github.com/Kunagi/ilarkesto/blob/master/src/main/java/ilarkesto/media/Audio.java

StackOverflowのユーザーがWTFPLの条件の下でAudio.javaからコードを使用することができます。

+0

コードに感謝しますが、それは私にとってはうまくいきません:S –

+0

ubuntu 14.04 –

+0

ではうまく動作しますが、Windows 8ではうまく動作しません。 –

関連する問題