Java播放声音文件

  本文由广州疯狂软件java培训为你整理:

  一,在Applet中播放声音

  播放声音是java对多媒体的支持一个重要部分,现今流行的声音格式有wav,mid,au为扩展名的声音文件,而java现主要支持以au为名的声音。

  在Applet中专门提供了类AudioClip来对声音的支持。由于Applet的多媒体功能书上都有很清晰的介绍也很简单。

  我们就以一个例子来结束这部分的说明。

  import java.applet.*;

  public class sounda extends Applet

  {

  public static void main (String[] args)

  {

  AudioClip ac = getAudioClip(getCodeBase(),"sloop.au");

  ac.play();

  // ac.loop();

  // ac.stop();

  }

  }

  上面例子只是很简单的说明,AudioClip是java中播放类。

  java中提供了两个很有用的方法getCodeBase(),getDocumentBase()。 它们分别返回Applet本身和包含此Applet主页的URL地址上面的sloop.au即我机器上的声音文件。

  我们在此直接使用了AudioClip的play方法来播放声音。大家可测试用Applet的图像功能加入按钮。

  二,java应用程序中的声音播放

  由于在应用程序并不支持AudioClip类, 所以播放声音文件成了一大难题。制做自己的java播放器或应用媒体方面的java应用程序我们就不能支持声音了吗?不是的。

  sun公司为应用程序中的声音支持另提供了一个java新包 -- sun.audio。 在这个包下面提供了大部分所需要的声音处理类。

  注:sun包下面还有很多很有意思的技术支持,如java2D,Tools等,大家可自己尝试去使用。

  下面我们就来做个自己的声音播放测试

  import sun.audio.*;

  import java.io.*;

  public class Sound

  {

  public static void main(String[] args)

  {

  try {

  FileInputStream fileau=new FileInputStream("sloop.au");

  AudioStream as=new AudioStream(fileau);

  AudioPlayer.player.start(as);

  } catch (Exception e) {

  e.printStackTrace();

  }

  }

  }

  注:上面两例都没有提供相应的stop方法,本文章指在方法的尝试,并非全面文章,但上面的例子都是可用的。

  三 javaX中Sound包的应用

  当我在进行上面的测试过程中,我发现javax目录下也提供了一个sound包对java声音的强大支持,并且在sun网站的jjse上可下载到相关的大量例子程序.有志于声音处理方向的朋友可下载试试,现在关于如何 在Java 小程序(Applet)中播放音乐以供人边浏览页面边欣赏的介绍已经很多了,但对如何在应用程序(Application)中放音乐的介绍还很少,下面我就逐步地讲解一下如何实现。

  Jun 当 前 的Java Development Kit 版本1.1.3 并不正式支持在Application 中放音乐文件,但这依然是可以实现的。

  首先让我们复习一下在Applet中放音乐的四个步骤,代码如下:

  import java.applet.*;

  AudioClip ac=getAudioClip (getCodeBase(), File); // 创 建Audioclip 对 象 并 装 入.au 文

  件

  ac.play(); // 播 放 一 次

  ac.stop(); // 停 止 播 放

  ac.loop(); // 循 环 播 放

  大家可能认为此代码在Application 中也能使用,但不幸的是它在编译时就会发生错误。

  因为AudioClip 对象(object)和getAudioClip() 方法(method)都是属 于java.applet 包的-- 它在Application 中无法调用。

  解决问题的办法使用一些Sun 在JDK中发布但未正式注明(undocumented)的特点。用Winzip 或Zip观察一下class.zip文件就会发现除了java.applet 包中包含对声音文件处理外,在/sun/audio目录下的sun.audio包也提供类似的方法。

  下面是实现代码和注释:

  import sun.audio.*; // 引 入sun.audio 包

  import java.io.*;

  ...

  InputStream in = new FileInputStream (Filename); // 打 开 一 个 声 音 文 件 流 作 为 输 入

  AudioStream as = new AudioStream (in); // 用 输 入 流 创 建 一 个AudioStream 对 象

  AudioPlayer.player.start (as); //“player” 是AudioPlayer 中 一 静 态 成 员 用 于 控 制 播 放

  AudioPlayer.player.stop (as);

  当需从网上下载文件播放时,用以下代码打开音乐文件网址:

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

  播放一个持续的声音流就复杂一些了:

  首先如上创建声音流;

  AudioData data = as.getData (); // 创 建AudioData 源

  ContinuousAudioDataStream cas = new ContinuousAudioDataStream (data);

  AudioPlayer.player.play (cas); // 放 音

  AudioPlayer.player.stop (cas); // 停 止

  完 成 了 ! 因为以上程序使用了未公开的特性,所以不能保证它能在除了当前版本的Sun JDK以外的编译器上运行。

  学IT技术就学Java技术,疯狂软件Java培训机构,打造国内高级Java人才。

  疯狂软件Java培训优势

  1. Java是世界第一大编程语言,市场占有率达20%。

  2.广州最专业Java培训机构,多年教学经验。

  3.学员技术牛就业率最好,就业薪资都在5000以上。

  4.疯狂软件Java培训课程以项目实战带动教学,上课打破传统课堂模式,以实训项目贯穿教学,带领学生一起做企业真实项目。

  疯狂Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。高薪从IT名企请来项目经理为学员亲自授课,对学员进行实战教学,在疯狂java,通过大量全真经典企业级项目进行集中培训,学员通过数月培训都可获得1-2年的工作经验,进而在同类的求职者中脱颖而出。疯狂Java培训让你体会java编程的快乐,项目开发的兴奋,成就感,通过短短几个月的时间,让你在半年的时间内掌握8-10万的代码量,掌握Java核心技术,迅速成为技能型的现代化高端人才,迅速获得高薪就业!

  疯狂软件中心Java培训、iOS培训打造名企技术经理,成为中国软件产业的中流砥柱:全真企业需求,项目小组管理,大量实操项目的疯狂训练,企业全真案例教学,学成至少相当于两年工作经验“全真项目”教学,高强度的狂热训练,带领学生走近编程,感受编程,热爱编程,学完后产生凤凰涅槃般的重生。 “全真企业环境”模拟:以项目组形式管理,每个程序员(学员)对项目组长负责,组长向项目经理(老师)负责。以版本控制工具为引导,充分激发每个程序员对编程的激情 四个半月掌握近8~10万代码量,达到技术经理的代码掌握量。

原文地址:https://www.cnblogs.com/gojava/p/3574855.html