java htmlunit hellod_使用Java播放声音文件的编程技巧

因为java强大的类库,解决这个问题并不困难,只是API的调用问题而已。不过,不同的调用也有区别。本文主要介绍使用Java播放声音文件的编程技巧。

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

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

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

{

try {

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

AudioClip ac = Applet.newAudioClip(url);

ac.play();

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

} catch (Exception e) {

System.out.println(e);

}

}

当然,前提是导入3个包:

import java.applet.Applet;

import java.applet.AudioClip;

import java.net.URL;

然而实践证明这个方法并不好用,播放的声音断断续续,听起来简直是一种折磨~(不晓得这是类库本身的原因还是我电脑的故障~)后来发现了一个好方法,是由http://wenda.tianya.cn/wenda/thread?tid=7f56d51cd8e46a29&clk=wttpcts中的”神之泪花“提供的。(我怎么觉得是广告……囧……)

public void play(String Filename)

{

try{

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

InputStream in = new FileInputStream(Filename);//FIlename 是你加载的声音文件如(“game.wav”)

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

AudioStream as = new AudioStream(in);

AudioPlayer.player.start(as);//用静态成员player.start播放音乐

//AudioPlayer.player.stop(as);//关闭音乐播放

//如果要实现循环播放,则用下面的三句取代上面的“AudioPlayer.player.start(as);”这句

/*AudioData data = as.getData();

ContinuousAudioDataStream gg= new ContinuousAudioDataStream (data);

AudioPlayer.player.start(gg);// Play audio.

*/

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

/*AudioStream as = new AudioStream (url.openStream());

*/

} catch(FileNotFoundException e){

System.out.print("FileNotFoundException ");

} catch(IOException e){

System.out.print("有错误!");

}

}

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

import sun.audio.*; //java提供的,经常被忽略吧~

import java.io.*;

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

PS:好的东西历久弥香,先转过来收藏,待得闲时在测试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值