返回
中国计算机报1999年第9期

在VJ++中播放音乐

傅 胜

  VJ++的AudioClip接口提供了播放声音文件的方法,利用它编写小应用程序applet,可在Web上控制声音文件的播放。

  AudioClip接口的内容是:

  public interface java.applet.AudioClip

  {

   public abstract void play();

   public abstract void loop();

   public abstract void stop();

  }

  其中,play()方法播放完一次声音文件后自动停止播放,loop()方法则是循环播放音乐,stop()方法用来停止声音文件的播放。

  此外,还要用到两个方法:getCodeBase()和getAudioClip()来取得要播放的声音文件。getCodeBase()方法返回当前执行的applet的代码所在的URL,getAudioClip()方法则将网络中的声音文件下载到本机内, getAudioClip()的参数形式为:

  public AudioClip getAudioClip(URL url,string name)。

  其中,url就是方法getCodeBase()返回的声音文件的基准位置,name就是声音文件的路径和文件名。

  应当注意的是,到目前为止,Java只支持一种声音格式的文件——8位单声道的.au声音格式,而在Windows上流行的 .wav文件并不在Java支持格式范围内,所以需要一种声音格式转换程序将.wav文件转换为.au格式文件,这里推荐其中一种软件:Awave,它收录在中国计算机报1998年光盘InfoCD NO.8中,Awave能识别不同平台上100多种格式的声音文件,并能互相转换。下面就介绍一下制作.au文件的具体步骤:

  ①在Win95/98中的录音机程序中打开.wav文件,将它另存为一个.wav文件,但要更改它的格式为: 采样频率为8000Hz的8位单声道的.wav文件;

  ②在Awave中打开新创建的.wav文件,将它另存为.au文件,注意格式:存盘类型为Au - Sun/NeXT/DEC audio, Subformat为Mu-law 8bit,选择单声道Mono,去掉立体声Stereo。建议将声音文件保存到applet所在的目录中。

  播放音乐的music01.java源程序如下所示:

  import java.applet.;

  import java.awt.;

  import java.net.;

  public class music01 extends Applet

  { Button b—play,b—stop,b—loop;

   AudioClip Au—music;

   public void init()

   { resize(620, 240);

setBackground(new Color(192,220,192));

b—play = new Button(″播放″);

b—stop = new Button(″停止″);

   b—loop = new Button(″循环″);

   add(b—play);

add(b—stop);

   add(b—loop);

   URL codeBase=getCodeBase();

   Au—music=getAudioClip(codeBase,″mu08.au″);

   }

public boolean action(Event evt,Object arg)

   { String tt1;

int i;

if (evt.target==b—play)

{ Au—music.play();

return true;

}

if (evt.target==b—stop)

{ Au—music.stop();

return true;

}

   if (evt.target==b—loop)

{ Au—music.loop();

return true;

}

return false;

   }

  }

  将源程序编译后得到music01.class文件,利用Java AppletWizard自动生成的HTML文件(music01.html) ,就可在浏览器中欣赏它的效果了。

  包含applet的HTML文件如下所示:

  〈html〉

  〈head〉

  〈title〉music01〈/title〉

  〈/head〉

  〈body bgcolor=C0DCC0〉

  〈hr〉

  〈H2〉〈font color=red〉在Java中播放声音文件〈/font〉〈/h2〉

  〈applet

   code=music01.class

   name=music01

   width=320

   height=240 〉

  〈/applet〉

  〈hr〉

  〈/body〉

  〈/html〉

  运行时,用鼠标点击“播放”按钮,就可听到一首歌曲,点击“停止”按钮就终止播放,点击“循环”按钮则可循环播放歌曲。