音频文件三种重复播放功能

 

1.用  Applet 实现:(最简单的方法)

   

Java代码  
  1. AudioClip player = Applet.newAudioClip(url);   
  2.       
  3. AudioClip 介绍:   
  4. AudioClip 接口是用于播放音频剪辑的简单抽象。多个 AudioClip 项能够同时播放,   
  5.         得到的声音混合在一起可产生合成声音。   
  6.            
  7. 重复播放:player.loop();//一句就搞定了  
 AudioClip player = Applet.newAudioClip(url);
    
 AudioClip 介绍:
 AudioClip 接口是用于播放音频剪辑的简单抽象。多个 AudioClip 项能够同时播放,
         得到的声音混合在一起可产生合成声音。
         
 重复播放:player.loop();//一句就搞定了

           
         
2.通过JDK自带的audio实现

  

Java代码  
  1. sun.audio.AudioPlayer;//播放器   
  2. sun.audio.AudioStream;//音频流   
  3.       
  4.  do {   
  5.   InputStream is = url.openStream();// 获得音乐文件的输入流   
  6.   AudioStream as = new AudioStream(is);//创建音频 流   
  7.   AudioPlayer.player.start(as);//开始播放   
  8.   while(loop&&as.available() > 0 );//如果要实现重复,必须要停在这里,不然会一直只放开头,因为一直在重复读取   
  9.  } while (loop);      
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实现

 

Java代码   
  1. Player player = Manager.createPlayer(url);//创建播放器对象   
  2. player.addControllerListener(new ControllerListener() {//加上对应的控制监听器   
  3.  @Override  
  4.  public void controllerUpdate(ControllerEvent e) {   
  5.   // TODO Auto-generated method stub   
  6.   if (e instanceof EndOfMediaEvent) {//如果播放到音频文件末尾,则再次开始播放   
  7.    player.setMediaTime(new Time(0));   
  8.    player.start();   
  9.   
  10.   }   
  11.   if (e instanceof PrefetchCompleteEvent) {//Prefetch是指播放器的一种状态   
  12.    player.start();   
  13.   }   
  14.  }   
  15. });   
  16.   
  17.  player.prefetch();//这个是用来触发上面监听器对应的第二种时间,以开始播放音频文件 

你可能感兴趣的:(java)