이 작업을 수행하는 가장 쉬운 방법은 기본적으로 당신이 JavaSound를 통해 jlayer 사용을 의미 mp3spi를 통해 jlayer 사용하는 것입니다. 그런 다음 JavaSound에서와 같이 라인에서 게인을 설정할 수 있습니다.
첫째로, 당신은 당신의 클래스 경로에 다음을 추가해야합니다
- jl1.0.1.jar
- mp3spi1.9.5.jar
- tritonus_share.jar
.. . 모두 mp3spi (위 링크)에 대한 배포판에 있습니다.
둘째, 재생하기 전에 AudioInputStream을 디코딩해야합니다.
Clip clip = AudioSystem.getClip();
clip.open(audioStream2);
및 JavaSound API 컨트롤을 사용할 수 있습니다 :
FloatControl gainControl = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
gainControl.setValue(-30.0f);
참고 : 자원을 종료하는 것을 잊지 마세요, 그냥했습니다
AudioInputStream audioStream = AudioSystem.getAudioInputStream(file);
AudioFormat baseFormat = audioStream.getFormat();
AudioFormat decodedFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, baseFormat.getSampleRate(), 16, baseFormat.getChannels(),
baseFormat.getChannels() * 2, baseFormat.getSampleRate(), false);
AudioInputStream audioStream2 = AudioSystem.getAudioInputStream(decodedFormat, audioStream);
그런 다음 당신은 디코딩 된 스트림을 재생 이 문제에 대한 요점을 보여주었습니다 - JavaSound에 대한 익숙 함이 예상됩니다, read here.
if/else 서식이 머리를 아프게합니다. – akf
안녕하세요, 빠른 답변에 감사드립니다. 나는 그것을 확인하고 내가 그것을 얻지 못하면 다시 물을 것이다 :-) – Timothy
Ohh emm 당신이 게시 한 코드가 어떤 파일에 있는지 빠르게 알 수 있습니까? 건배 – Timothy