音频文件重复播放 - 三种方法
为了这个纠结了一个下午,现在总结一下我所知道的三种常用的播放音频的方法;
其中JDK本身自带的有两个,用JMF实现一个.
?
1.用? Applet 实现:(最简单的方法)
???
AudioClip player = Applet.newAudioClip(url); AudioClip 介绍: AudioClip 接口是用于播放音频剪辑的简单抽象。多个 AudioClip 项能够同时播放, 得到的声音混合在一起可产生合成声音。 重复播放:player.loop();//一句就搞定了
???????????
?????????
2.通过JDK自带的audio实现
??
sun.audio.AudioPlayer;//播放器sun.audio.AudioStream;//音频流 do { InputStream is = url.openStream();// 获得音乐文件的输入流 AudioStream as = new AudioStream(is);//创建音频 流 AudioPlayer.player.start(as);//开始播放 while(loop&&as.available() > 0 );//如果要实现重复,必须要停在这里,不然会一直只放开头,因为一直在重复读取 } while (loop);
?
?
3.通过JMF实现
?
Player player = Manager.createPlayer(url);//创建播放器对象player.addControllerListener(new ControllerListener() {//加上对应的控制监听器 @Override public void controllerUpdate(ControllerEvent e) { // TODO Auto-generated method stub if (e instanceof EndOfMediaEvent) {//如果播放到音频文件末尾,则再次开始播放 player.setMediaTime(new Time(0)); player.start(); } if (e instanceof PrefetchCompleteEvent) {//Prefetch是指播放器的一种状态 player.start(); } }}); player.prefetch();//这个是用来触发上面监听器对应的第二种时间,以开始播放音频文件
?? JMF?工具包在下面的附件里,如果需要可以直接下载.