如何在JAVA窗体中添加背景音乐?

解决方案 »

  1.   

    背景音乐是说的玩的,还真有什么“背景”音乐吗?不就是显示窗口的时候同时播放音乐吗?给你一个播放本地音频文件的示例import java.io.*;
    import javax.sound.sampled.AudioSystem;
    import javax.sound.sampled.AudioInputStream;
    import javax.sound.sampled.AudioFormat;
    import javax.sound.sampled.SourceDataLine;
    import javax.sound.sampled.DataLine;
    import javax.sound.sampled.FloatControl;public class PlayMusic {
        static volatile boolean stop=false;
        public static void main(String[] args) {
            //播放当前目录中的3.wav
            PlayMusic.Play("3.wav");
        }    //播放音频文件
        public static void Play(String fileurl) {        try {
                AudioInputStream ais = AudioSystem.getAudioInputStream(new File(fileurl));
                AudioFormat aif = ais.getFormat();System.out.println(aif);
                final SourceDataLine sdl;
                DataLine.Info info = new DataLine.Info(SourceDataLine.class, aif);
                sdl = (SourceDataLine) AudioSystem.getLine(info);
                sdl.open(aif);
                sdl.start();
                FloatControl fc=(FloatControl)sdl.getControl(FloatControl.Type.MASTER_GAIN);
                //value可以用来设置音量,从0-2.0
                double value=2;
                float dB = (float)
                      (Math.log(value==0.0?0.0001:value)/Math.log(10.0)*20.0);
                fc.setValue(dB);
                int nByte = 0;
                int writeByte = 0;
                final int SIZE=1024*64;
                byte[] buffer = new byte[SIZE];
                while (nByte != -1) {
                    nByte = ais.read(buffer, 0, SIZE);
                    sdl.write(buffer, 0, nByte);
                }
                sdl.stop();        } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
      

  2.   

    楼上大哥,你不像是程序员,像是用户。我播放的示例都给你了,如何播放,什么时候播放,当然是你自己控制啊。点按钮播放,就在按钮的监听函数中写播放代码啊。而且,对于Java来说,控制声卡发声就是像SourceDateLine这个流写数据,即sdl.write(buffer, 0, nByte);这句。
      

  3.   


    使用 freettsSystem.setProperty("freetts.voices" "de.dfki.lt.freetts.en.us.MbrolaVoiceDirectory");
    Voice mbrola = VoiceManager.getInstance().getVoice("mbrola_us2");
    mbrola.allocate();
    mbrola.speak("1");
    mbrola.deallocate();
      

  4.   

    有问题
    javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input file
    at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1170)
    at gomoku.PlayMusic.Play(PlayMusic.java:21)
    at gomoku.PlayMusic.main(PlayMusic.java:14)
    怎么解决
      

  5.   

    有问题
    javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input file
    at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1170)
    at gomoku.PlayMusic.Play(PlayMusic.java:21)
    at gomoku.PlayMusic.main(PlayMusic.java:14)
    怎么解决
    可能是的jar包版本不支持wav格式,你换个mp3格式的试试
      

  6.   

    MP3格式的真心不行,求一个。mav格式的音频文件