音频文件重复播放 - 三种方法

为了这个纠结了一个下午,现在总结一下我所知道的三种常用的播放音频的方法;

其中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 工具包在下面的附件里,如果需要可以直接下载.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值