发信人: 2001asp(ujj)
整理人: snowypeng(2002-05-23 09:18:36), 站内信件
|
在 你 的HomePage 中 光 有 文 字、 影 像、 动 态 效 果 的 动 画 还 不 够, 那 就 是 缺 少 动 听 的 音 乐 和 声 音。 其 实 载 入 声 音 文 件 和 放 出 声 音, 和 我 们 处 理 图 片 文 件 的 动 作 是 非 常 相 似 的, 其 主 要 也 是 利 用JAVA 的AudioClip 程 序 包 里 定 义 的 接 口, 它 主 要 提 供 了3 个 方 法,loop()、play() 和stop() 来 播 放au 声 音 文 件, 使 用 起 来 非 常 容 易。
AU 声 音 文 件 并 不 象WAV 文 件 那 样 常 见, 我 们 可 以 用 一 套 相 当 不 错 的 声 音 处 理 共 享 软 件GoldWave, 它 可 以 将 WAV 文 件 转 换 成AU 类 型 的 声 音 文 件, 有 条 件 的 人 可 以 到http://www.cs.num.ca/ ~chris3/goldwave/ 下 直 接 下 载 下 来 使 用。
准 备 好 你 的 声 音 文 件 以 后, 接 下 来 的 工 作 就 是 如 何 开 发 你 的 软 件 了, 主 要 有 以 下 几 个 关 键 点:
一.JAVA 程 序 开 发 方 法
1. 在 你 的 程 序 开 始 处 加 上import java.applet.AudioClip 这 一 句, 然 后 我 们 就 可 以 使 用 它 提 供 的 一 些 对AU 声 音 文 件 处 理 的 功 能 了。
2. 利 用Applet 类 中 的getAudioClip 载 入 声 音 文 件, 它 的 格 式 是:soundfile=getAudioClip(getCodeBase(),filenams);
3. 播 放 声 音 文 件, 一 次 播 放 用soundfile.play(), 重 复 播 放 用soundfile.loop()。
4. 停 止 声 音 播 放 用soundfile.stop()。
二. 在 自 己 的HomePage 中 加 入 如 下 程 序 段 就 行 了。
< !HomePage 1998/3/2 >
< HTML >
< HEAD >
。。。。。。
。。。。。。
< BODY >
。。。。。。
< APPLET CODE="javaau.class" WIDTH=200 HEIGHT=40 >< /APPLET >
。。。。。。
< /BODY >
。。。。。。
。。。。。。
< /HTML >
下 面 给 出 我 们 开 发 的JAVAAU.JAVA 程 序, 它 是 按 用 户 进 入 时 间 播 放t0.aut5.au 六 个 声 音 文 件 中 的 一 个:
import java.awt.*;
import java.util.Date;
import java.applet.AudioClip;
public class javaau extends java.applet.Applet {
AudioClip soundfile;
Font msgfnt=new Font("TimesRoman",Font.ITALIC,20);
Date timenow=new Date();/* 取 当 前 时 间*/
int time,i;
String s;/* 存 声 音 文 件*/
public void init()/* 初 始*/
{ time=timenow.getSeconds();/* 取 时 间 的 秒 数*/
i=time/10;
s="t"+String.valueOf(i)+".au";/* 生 成 文 件 名*/
soundfile=getAudioClip(getCodeBase(),s);/* 载 入 声 音 文 件*/
if (soundfile!=null) soundfile.play();/* 一 次 性 播 放*/
repaint();
}
public void stop()/* 停 止 播 放*/
{
if (soundfile!=null) soundfile.stop();
}
public void paint(Graphics g)
{
g.setFont(msgfnt);
g.setColor(Color.red);
g.drawString(" 现 在 播 放"+s,20,20);
if (soundfile!=null) soundfile.play();
}
}
---- E网情深国立华侨大学商检95本主页(http://sj95.126.com)
|
|