java - AudioClip 音量问题

标签 java swing audio javasound

我在 how to implement audio sounds in Java games 上观看了 Mattew 的精彩教程.

问题是即使我在运行游戏时降低了wav文件的音量,在Java中wav声音文件的音量仍然很高,我的意思是你甚至不能玩游戏,因为背景音乐是太吵了。

为什么 wav 文件的体积没有在 Java 中维护?

最佳答案

使用基于 Java Sound 的 Clip 可能会更好。比基于小程序的 AudioClip . Clip接口(interface)支持控件,其中一个应该是MASTER_GAIN .

例如。

import java.awt.*;
import java.net.URL;
import javax.swing.*;
import javax.swing.event.*;
import javax.sound.sampled.*;

class ClipVolume {

    public static void main(String[] args) throws Exception {
        URL url = new URL(
                "http://pscode.org/media/leftright.wav");
        final Clip clip = AudioSystem.getClip();
        // getAudioInputStream() also accepts a File or InputStream
        AudioInputStream ais = AudioSystem.getAudioInputStream(url);
        clip.open(ais);
        clip.loop(Clip.LOOP_CONTINUOUSLY);
        Runnable r = new Runnable() {

            @Override
            public void run() {
                final FloatControl control = (FloatControl) 
                        clip.getControl(FloatControl.Type.MASTER_GAIN);

                final JSlider volume = new JSlider(
                        JSlider.HORIZONTAL,
                        (int) control.getMinimum(),
                        (int) control.getMaximum(),
                        (int) control.getValue());
                volume.addChangeListener(new ChangeListener() {

                    public void stateChanged(ChangeEvent ce) {
                        control.setValue(volume.getValue());
                    }
                });

                JOptionPane.showMessageDialog(null, volume);
            }
        };
        // Swing GUIs should be created and updated on the EDT
        // http://docs.oracle.com/javase/tutorial/uiswing/concurrency
        SwingUtilities.invokeLater(r);
    }
}

关于java - AudioClip 音量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20873057/

相关文章:

具有通用静态工厂的 Java 泛型益智游戏

Java全局按键?

Java接口(interface)扩展题

java - 错误播放声音java(无线匹配接口(interface)剪辑支持格式)

Java:序列化集合 XML

java - JTable监听进入编辑模式

Java Swing BufferedImage 质量差

java - 为什么矩形没有渲染到屏幕上

ios - 如何使用 Swift 在 iOS 中将音频 mp3 文件转换为原始音频类型?

audio - 使用Lame将原始音频转换为mp3