设为首页 加入收藏

TOP

使用Java播放声音文件
2014-11-24 02:38:50 来源: 作者: 【 】 浏览:1
Tags:使用 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;


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


  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.*;


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


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇上传多个文件到Oracle数据库 下一篇Java如何通过Google map api实现..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: