当前位置:  开发笔记 > 编程语言 > 正文

如何在java应用程序中播放声音(警报)?

如何解决《如何在java应用程序中播放声音(警报)?》经验,为你挑选了3个好方法。

我正在使用SMS处理,基于Java的软件,并希望在收到消息时发出哔哔/警报声.我试着查看java.sound库,找不到任何东西.我不知道在Java应用程序中播放声音的小程序是否合适!在我们可以在应用程序中调用的任何Java库中是否有任何预定义的声音?任何指针将不胜感激!



1> Sean..:

如果您只是想要发出哔哔声或快速警报,请尝试

Toolkit.getDefaultToolkit().beep();


这可能不适用于Linux.
导入java.awt.Toolkit;

2> RealHowTo..:

如果您在没有外部声音文件的情况下寻找比哔哔声()更无聊的东西,您可以生成自己的声音.

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);

  }
}

这里有更多声音实验: 产生特殊的声音效果



3> npinti..:

你可以看看Toolkit类中的蜂鸣方法,如图所示这里

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有