windows播放wav声音文件--java播放wav完整demo
来源:互联网 发布:Js button 非活性 编辑:程序博客网 时间:2024/05/01 01:45
有个新的需求,要java的windows应用发声音,原本说的只是使用蜂鸣器发声音,直接上代码:
public static void main(String[] args) { Toolkit toolkit = Toolkit.getDefaultToolkit(); toolkit.beep(); }
但是蜂鸣器发的声音很单一,而且没办法更换,后来就写了一个例子,直接播放wav格式的声音文件,这个就好多了,可以直接播放。直接上代码了:
package test;import java.io.BufferedInputStream;import javax.sound.sampled.AudioInputStream;import javax.sound.sampled.AudioSystem;import javax.sound.sampled.Clip;import javax.sound.sampled.LineEvent;import javax.sound.sampled.LineListener;import javax.sound.sampled.LineEvent.Type;public class TestBeep { public static void main(String[] args) { try { TestBeep beep = new TestBeep(); AudioInputStream inputStream = beep.getAudioStream(); beep.play(inputStream); Thread.sleep(1000); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private AudioInputStream getAudioStream() throws Exception{ return AudioSystem .getAudioInputStream(new BufferedInputStream(getClass() .getResourceAsStream("/message.wav"))); } private void play(AudioInputStream audioInputStream) throws Exception{ Clip clip = AudioSystem.getClip(); AudioListener listener = new AudioListener(); clip.addLineListener(listener); clip.open(audioInputStream); try { clip.start(); listener.waitUntilDone(); } catch (final InterruptedException e) { e.printStackTrace(); } finally { clip.close(); } audioInputStream.close(); } class AudioListener implements LineListener { private boolean done = false; /** * This method allows to be notified for each event while playing a * sound */ @Override public synchronized void update(final LineEvent event) { final Type eventType = event.getType(); if (eventType == Type.STOP || eventType == Type.CLOSE) { done = true; notifyAll(); } } /** * This method allows to wait until a sound is completly played * * @throws InterruptedException * as we work with thread, this exception can occur */ public synchronized void waitUntilDone() throws InterruptedException { while (!done) wait(); } }}
声音文件message.wav放在src的目录下即可,直接运行就可以播放声音了。生命不息,代码不止,有什么不足的地方,希望大家指出。
1 0
- windows播放wav声音文件--java播放wav完整demo
- java 播放 wav 声音文件
- c++播放wav声音文件
- c++播放wav声音文件
- QT播放.WAV声音文件
- 使用DirectX播放wav声音文件
- 使用windows API播放声音文件(wav、mp3)等
- Java编程播放.wav或.au等声音文件
- VC6.0中播放WAV格式声音文件
- qt4.8+Phonon播放.wav声音文件
- JAVA 播放WAV格式文件
- Java-播放WAV音频
- wav播放
- vb.net、vb播放声音 wince下播放声音文件(wav)
- Windows下播放WAV音频文件
- java 播放midi,wav,mp3
- java 播放midi,wav,mp3
- java 播放wav格式音频
- 如何防止由于卡顿用户多次点击UINavigation push操作。
- 命令行BASH的基本操作
- Ajax的工作原理
- java集合排序
- Jmeter---一个简单的性能测试实例(聚合报告)
- windows播放wav声音文件--java播放wav完整demo
- Java 7 新的 try-with-resources 语句,自动资源释放
- Android MVP模式学习
- 谈PLM和ERP的差异比较
- C#调用windows API的一些方法
- C# 调用Delphi动态库
- Angularjs 入门 (老司机开车版)
- HTML5 performance 前端加载性能初探
- iOS 获取控件相对屏幕的位置