您的位置:首页 > 编程语言 > Java开发

java 播放声音

2010-04-09 20:30 197 查看
最近一个课程设计,做个java应用程序,模拟手机打电话。为了让效果更好,想为按键加上音效、拨打电话有铃声。

于是乎,做了些功课,参照有关jdk,写了个类

MusicPaly myMusicPlay = new MusicPlay(getClass().getResource("/music/button.wav"));
myMusicPlay.start();//播放一次
myMusicPlay .stop();//停止
myMusicPlay .continuousStart();//循环播放
myMusicPlay .continuousStop();//停止

// 文件名:MuiscPlay.java
import java.io.*;
import java.net.URL;
import sun.audio.*;

/**
*
* @author wuhuiwen
* 播放音频文件,产生音效
*/
public class MusicPlay {
private AudioStream  as; //单次播放声音用
ContinuousAudioDataStream cas;//循环播放声音
// 构造函数
public MusicPlay(URL url)
{
try {
//打开一个声音文件流作为输入
as = new AudioStream (url.openStream());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 一次播放 开始
public void start()
{
if( as==null ){
System.out.println("AudioStream object is not created!");
return;
}else{
AudioPlayer.player.start (as);
}
}
// 一次播放 停止
public void stop()
{
if( as==null ){
System.out.println("AudioStream object is not created!");
return;
}else{
AudioPlayer.player.stop(as);
}
}
// 循环播放 开始
public void continuousStart()
{
// Create AudioData source.
AudioData data = null;
try {
data = as.getData();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

// Create ContinuousAudioDataStream.
cas = new ContinuousAudioDataStream (data);

// Play audio.
AudioPlayer.player.start(cas);
}
// 循环播放 停止
public void continuousStop()
{
if(cas != null)
{
AudioPlayer.player.stop (cas);
}
}

}


欢迎拍砖
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: