- 締切済み
自作のJAVAゲームにて、音量、左右のバランスの制御が出来ずに困っています。
自作のJAVAゲームにて、音量、左右のバランスの制御が出来ずに困っています。 音声ファイルごと、もしくは音声ファイルの種類(mp3、wave、mid)ごとに音量の設定、制御が出来るようにしたいのですが、その方法等を御教授頂けないでしょうか? また、左右のバランスについてもお教えいただければ幸いです。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Lieserl
- ベストアンサー率81% (31/38)
面白そうなのでちょっと調べてみました。 以下のサンプルで左にPANされて再生できます。 lineからコントロールを取得して、操作するみたいですね。 ボリューム等他のコントロールについては参考URLを見て下さい。 import javax.sound.sampled.*; // 中略 public static final int BUFFER_SIZE = 1024*1024; // 中略 File soundFile = new File("c:\\WINDOWS\\Media\\chimes.wav"); AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(soundFile); AudioFormat audioFormat = audioInputStream.getFormat(); DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat); SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info); line.open(audioFormat); FloatControl pan = null; pan = (FloatControl) line.getControl(FloatControl.Type.PAN); float leftPan = pan.getMinimum(); float rightPan = pan.getMaximum(); pan.setValue(leftPan); line.start(); int readSize = 0; byte[] buf = new byte[BUFFER_SIZE]; while (readSize != -1) { readSize = audioInputStream.read(buf, 0, buf.length); if (0 < readSize) { line.write(buf, 0, readSize); } } line.drain(); line.close(); // 以下略