时间:2021-05-19
播放声音的类
复制代码 代码如下:
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.SourceDataLine;
//播放声音的类
public class PlaySounds extends Thread {
private String filename;
public PlaySounds(String wavfile) {
filename = System.getProperty("user.dir")+wavfile;
}
public void run() {
File soundFile = new File(filename);
AudioInputStream audioInputStream = null;
try {
audioInputStream = AudioSystem.getAudioInputStream(soundFile);
} catch (Exception e1) {
e1.printStackTrace();
return;
}
AudioFormat format = audioInputStream.getFormat();
SourceDataLine auline = null;
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
try {
auline = (SourceDataLine) AudioSystem.getLine(info);
auline.open(format);
} catch (Exception e) {
e.printStackTrace();
return;
}
auline.start();
int nBytesRead = 0;
//这是缓冲
byte[] abData = new byte[512];
try {
while (nBytesRead != -1) {
nBytesRead = audioInputStream.read(abData, 0, abData.length);
if (nBytesRead >= 0)
auline.write(abData, 0, nBytesRead);
}
} catch (IOException e) {
e.printStackTrace();
return;
} finally {
auline.drain();
auline.close();
}
}
}
下面是一个java播放声音的应用程序,可以单次播放声音、循环播放声音
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);
}
}
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
pygame.mixer是一个用来处理声音的模块,其含义为“混音器”。游戏中对声音的处理一般包括制造声音和播放声音两部分,这里仅学习了播放声音部分。1、pyga
网页无法播放声音是一件非常让人郁闷的事情。那么网页无法播放声音怎么办呢?下面我们来看一下网页无法播放声音的解决办法。网页上的声音无法播放的话,我们可以查看一下I
关闭了启动时播放声音选项,怎么关闭?今天我们就来看看在bigsur关闭笔记本启动时候播放声音选项的技巧。1、如图,在笔记本点击【Apple】。2、打开笔记本的【
有交互功能的演示文稿具有的功能有: 1、实现播放声音乐曲; 2、播放动态视频图像; 3、超链接功能; 4、自动循环放映功能。
2016年网站设计中的两个趋势 1、自动播放声音 不久以前,很多网站设计原则是不包括声音的,除非它是可选择关闭或打开的。否则设计师你肯定不会邹自动播放的