- Fix for the Alternate Sound System by kevlahnota

This commit is contained in:
Michael Kamensky
2021-02-13 16:49:09 +03:00
parent 02297189ad
commit deea26d985

View File

@@ -1,6 +1,10 @@
package forge.sound;
import com.google.common.io.Files;
import com.sipgate.mp3wav.Converter;
import javax.sound.sampled.*;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
@@ -69,7 +73,8 @@ public class AltSoundSystem extends Thread {
AudioInputStream audioInputStream = null;
try {
audioInputStream = AudioSystem.getAudioInputStream(soundFile);
ByteArrayInputStream bis = new ByteArrayInputStream(Converter.convertFrom(Files.asByteSource(soundFile).openStream()).toByteArray());
audioInputStream = AudioSystem.getAudioInputStream(bis);
} catch (UnsupportedAudioFileException e) {
e.printStackTrace();
return;
@@ -82,8 +87,21 @@ public class AltSoundSystem extends Thread {
SourceDataLine audioLine = null;
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
Mixer.Info selectedMixer = null;
for (Mixer.Info mixerInfo : AudioSystem.getMixerInfo()) {
Mixer mixer = AudioSystem.getMixer(mixerInfo);
if (mixer.isLineSupported(info)) {
selectedMixer = mixerInfo;
break;
}
}
if (selectedMixer == null)
return;
try {
audioLine = (SourceDataLine) AudioSystem.getLine(info);
audioLine = AudioSystem.getSourceDataLine(format, selectedMixer);
audioLine.open(format);
} catch (Exception e) {
return;