当前位置: 代码迷 >> J2SE >> 小弟我想写个java程序实现boolean值为true时,程序自动发出声音
  详细解决方案

小弟我想写个java程序实现boolean值为true时,程序自动发出声音

热度:21   发布时间:2016-04-24 12:25:21.0
我想写个java程序实现boolean值为true时,程序自动发出声音
我想写个java程序实现boolean值为true时,程序自动发出声音,该怎么写哦,我不会啊 大家指点一下啊

------解决方案--------------------
探讨
这里是什么意思啊 我不懂啊


引用:
Toolkit.getDefaultToolkit().beep();

------解决方案--------------------
如果你是用的eclipse
ctrl+shift+o就会自动导入类,导入import java.awt.Toolkit;就可以了
------解决方案--------------------
下面是一个播放本地音频文件的示例:
Java code
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();        }    }}
  相关解决方案