我正在使用SMS处理,基于Java的软件,并希望在收到消息时发出哔哔/警报声.我试着查看java.sound库,找不到任何东西.我不知道在Java应用程序中播放声音的小程序是否合适!在我们可以在应用程序中调用的任何Java库中是否有任何预定义的声音?任何指针将不胜感激!
如果您只是想要发出哔哔声或快速警报,请尝试
Toolkit.getDefaultToolkit().beep();
如果您在没有外部声音文件的情况下寻找比哔哔声()更无聊的东西,您可以生成自己的声音.
import javax.sound.sampled.*; public class SoundUtils { public static float SAMPLE_RATE = 8000f; public static void tone(int hz, int msecs) throws LineUnavailableException { tone(hz, msecs, 1.0); } public static void tone(int hz, int msecs, double vol) throws LineUnavailableException { byte[] buf = new byte[1]; AudioFormat af = new AudioFormat( SAMPLE_RATE, // sampleRate 8, // sampleSizeInBits 1, // channels true, // signed false); // bigEndian SourceDataLine sdl = AudioSystem.getSourceDataLine(af); sdl.open(af); sdl.start(); for (int i=0; i < msecs*8; i++) { double angle = i / (SAMPLE_RATE / hz) * 2.0 * Math.PI; buf[0] = (byte)(Math.sin(angle) * 127.0 * vol); sdl.write(buf,0,1); } sdl.drain(); sdl.stop(); sdl.close(); } public static void main(String[] args) throws Exception { SoundUtils.tone(1000,100); Thread.sleep(1000); SoundUtils.tone(100,1000); Thread.sleep(1000); SoundUtils.tone(5000,100); Thread.sleep(1000); SoundUtils.tone(400,500); Thread.sleep(1000); SoundUtils.tone(400,500, 0.2); } }
这里有更多声音实验: 产生特殊的声音效果
你可以看看Toolkit类中的蜂鸣方法,如图所示这里