はじめに
このトピックに関する通常のロシア語の情報はありません。 また、Javaチュートリアルには多くの要望があります。 また、javax.sound.sampledのアーキテクチャは単純ではありますが、決して簡単ではありません。 したがって、私はこのトピックにHabréに関する最初の投稿を捧げることにしました。 続行:
音を鳴らす
ここではすべてが多かれ少なかれ単純です。 javax.sound.sampledをインポートして実行します。
try { File soundFile = new File("snd.wav");
音量調節
サウンドで遊んだ後、おそらくプログラムで音量を変更できるようにしたいでしょう。 Java Sound APIは、このような機会に独自の曲がり具合を提供します。
このコードは、
clip.open(ais)行と
clip.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();
書式
オーディオファイル形式のサポートに関するいくつかの言葉:mp3を忘れ、wavを思い出してください。 Auとaifもサポートされています。