SlickUtil Sound changing gain doesn't change volume level

So here is the code:

public class Song {

	public static Song song = new Song("/sounds/song1.ogg");
	
	private String file;
	private Audio audio;
	
	public Song(String file) {
		this.file = file;
		
		try {
			audio = AudioLoader.getAudio("OGG", Song.class.getResourceAsStream(file));
			
			audio.playAsMusic(1, 0.1f, false);
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public void changeGain(float gain) {
		float pos = this.audio.getPosition();
		audio.stop();
		audio.playAsMusic(1, gain, false);
		audio.setPosition(pos);
	}
	
}

It doesn’t matter what kind of gain I put in, it always plays as it was 1f.

PS

How can I stop SlickUtil from posting messages? Is there something like “setMessagePosting(boolean bool)” ?

I changed play method from “playAsMusic” to “playAsSoundEffect”.
I don’t know if there is a difference in memory usage or something like that, but that seemed to fix my issue.

public class Song {

   public static Song song = new Song("/sounds/song1.ogg");
   
   private String file;
   private Audio audio;
   
   public Song(String file) {
      this.file = file;
      
      try {
         audio = AudioLoader.getAudio("OGG", Song.class.getResourceAsStream(file));
         
         audio.playAsSoundEffect(1, 0.1f, false); // changed this line
         
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
   
   public void changeGain(float gain) {
      float pos = this.audio.getPosition();
      audio.stop();
      audio.playAsSoundEffect(1, gain, false); // changed this line
      audio.setPosition(pos);
   }
   
}