java

位置:IT落伍者 >> java >> 浏览文章

使用java播放声音文件


发布日期:2023年07月01日
 
使用java播放声音文件

因为java强大的类库解决这个问题并不困难只是API的调用问题而已不过不同的调用也有区别

很多人讲要使用JFM不过我懒得去安装所以另寻他法网上提供最多的方法就是利用Applet中的AudioClip来解决代码很简单如下

public void play(String Filename)//Filename是乐曲名称或说路径(不过路径我没尝试)

{

try {

URL url = new URL(file: + Filename);

AudioClip ac = AppletnewAudioClip(url);

acplay();

//acstop();//用此函数可以停止乐曲播放

} catch (Exception e) {

Systemoutprintln(e);

}

}

当然前提是导入个包

import javaappletApplet;

import javaappletAudioClip;

import URL;

然而实践证明这个方法并不好用播放的声音断断续续听起来简直是一种折磨~(不晓得这是类库本身的原因还是我电脑的故障~)后来发现了一个好方法是由中的神之泪花提供的

public void play(String Filename)

{

try{

// 用输入流打开一音频文件

InputStream in = new FileInputStream(Filename);//FIlename 是你加载的声音文件如(gamewav

// 从输入流中创建一个AudioStream对象

AudioStream as = new AudioStream(in);

AudioPlayerplayerstart(as);//用静态成员playerstart播放音乐

//AudioPlayerplayerstop(as);//关闭音乐播放

//如果要实现循环播放则用下面的三句取代上面的AudioPlayerplayerstart(as);这句

/*AudioData data = asgetData();

ContinuousAudioDataStream gg= new ContinuousAudioDataStream (data);

AudioPlayerplayerstart(gg);// Play audio

*/

//如果要用一个 URL 做为声音流的源(source)则用下面的代码所示替换输入流来创建声音流

/*AudioStream as = new AudioStream (urlopenStream());

*/

} catch(FileNotFoundException e){

Systemoutprint(FileNotFoundException );

} catch(IOException e){

Systemoutprint(有错误!);

}

}

而要使用这个方法导入的包与上一方法不同

import sunaudio*; //java提供的经常被忽略吧~

import javaio*;

使用这个方法在我电脑上播放很流畅

上一篇:Java Swing 中三种事件处理方法之比较

下一篇:HITS算法Java实现