рдкрд░рд┐рдЪрдп
рд╡рд┐рд╖рдп рдкрд░ рд░реВрд╕реА рднрд╛рд╖рд╛ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред рдЬрд╛рд╡рд╛-рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рднреА рд╡рд╛рдВрдЫрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред рдФрд░ javax.sound.sampled рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд░рд▓ рд╣реИ, рддреБрдЪреНрдЫ рд╕реЗ рджреВрд░ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЕрдкрдиреА рдкрд╣рд▓реА рдкреЛрд╕реНрдЯ Habr├й рдХреЛ рд╕рдорд░реНрдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдЖрдЗрдП рд╢реБрд░реВ:
рдзреНрд╡рдирд┐ рдмрдЬрд╛рдУ
рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рдХрдореЛрдмреЗрд╢ рд╕рд░рд▓ рд╣реИред Javax.sound.sampled рдЖрдпрд╛рдд рдХрд░реЗрдВ рдФрд░ рдЬрд╛рдПрдВ:
try { File soundFile = new File("snd.wav");
рдорд╛рддреНрд░рд╛ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг
рдзреНрд╡рдирд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рд╕рдВрднрд╡рддрдГ рдзреНрд╡рдирд┐ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЬрд╛рд╡рд╛ рд╕рд╛рдЙрдВрдб рдПрдкреАрдЖрдИ рдПрдХ рдорд╛рд▓рд┐рдХрд╛рдирд╛ рдХреБрдЯрд┐рд▓рддрд╛ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рдХреЛрдб рдХреЛ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдмреАрдЪ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреНрд▓рд┐рдк (ais) рдФрд░
рдХреНрд▓рд┐рдк редsetFramePosition (0) ред
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдПрдВ
рдФрд░ рдЕрдВрдд рдореЗрдВ, рддрд╛рдХрд┐ рдЖрдк рдкреАрдбрд╝рд┐рдд рди рд╣реЛрдВ, рдореИрдВрдиреЗ рдзреНрд╡рдирд┐рдпреЛрдВ рдХреЛ рдмрдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛ рдХреЛ рдлреИрд▓рд╛ рджрд┐рдпрд╛
import java.io.File; import java.io.IOException; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; import javax.sound.sampled.FloatControl; import javax.sound.sampled.LineEvent; import javax.sound.sampled.LineListener; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.UnsupportedAudioFileException; public class Sound implements AutoCloseable { private boolean released = false; private AudioInputStream stream = null; private Clip clip = null; private FloatControl volumeControl = null; private boolean playing = false; public Sound(File f) { try { stream = AudioSystem.getAudioInputStream(f); clip = AudioSystem.getClip(); clip.open(stream); clip.addLineListener(new Listener()); volumeControl = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN); released = true; } catch (IOException | UnsupportedAudioFileException | LineUnavailableException exc) { exc.printStackTrace(); released = false; close(); } }
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:
Sound.playSound("sounds/hello.wav").join();
рдкреНрд░рд╛рд░реВрдкреЛрдВ
рдСрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рд░реВрдкреЛрдВ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж: рдПрдордкреА 3 рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВ рдФрд░ wav рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВред рдПрдпреВ рдФрд░ рдПрдЖрдИрдПрдл рднреА рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред