Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set volume of a SourceDataLine in Java

I'm trying to make an mp3 player in java and I can`t figure out how to control the volume in it.

I've tried something like this:

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

Everything I have written until this code worked fine but apparently the dataLine is NOT control Supported because it jumps over this IF statement.

My question is this : Do you have any idea why this is happening and how could I work this issue around so that I could control the volume of my application?

like image 386
Liviu Avatar asked Jan 12 '11 12:01

Liviu


1 Answers

OK GUYS,

I found my mess-up. I actually forgot to call the dataLine.open(audioFormat) function which acquires the system resources.

So the code workes just fine, in case anyone has this kind of problems too

like image 87
Liviu Avatar answered Oct 17 '22 13:10

Liviu