收藏 分享(赏)

论文-039-基于JAVA语言的多媒体音频播放器的实现.doc

上传人:微传9988 文档编号:2522815 上传时间:2018-09-20 格式:DOC 页数:9 大小:55KB
下载 相关 举报
论文-039-基于JAVA语言的多媒体音频播放器的实现.doc_第1页
第1页 / 共9页
论文-039-基于JAVA语言的多媒体音频播放器的实现.doc_第2页
第2页 / 共9页
论文-039-基于JAVA语言的多媒体音频播放器的实现.doc_第3页
第3页 / 共9页
论文-039-基于JAVA语言的多媒体音频播放器的实现.doc_第4页
第4页 / 共9页
论文-039-基于JAVA语言的多媒体音频播放器的实现.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、目 录一 引 言 1二 JAVA 的 声 音 技 术 1(一 )声 音 文 件 类 型 简 介 11.主 要 的 声 音 文 件 类 型 如 下 : 12.JAVA 声 音 引 擎 支 持 两 种 MIDI 文 件 类 型 : 23.JAVA 声 音 音 频 引 擎 3(二 ) JAVA 平 台 声 音 的 简 要 介 绍 3三 基 于 Java 的 音 频 播 放 器 的 实 现 5(一 )设 计 过 程 5(二 )伪 代 码 的 设 计 5(三 )编 译 和 运 行 7四 结 论 7致 谢 7参 考 文 献 72基 于 JAVA 语 言 的 多 媒 体 音 频 播 放 器 的 实 现摘 要

2、 本 文 介 绍 了 基 于 JAVA 语 言 的 多 媒 体 技 术 , 简 要 分 析 了 JAVA 语 言 在 多媒 体 设 计 中 的 应 用 。 内 容 涉 及 声 音 播 放 的 基 本 技 术 。 并 给 出 了 里 利 用 JAVA语 言 实 现 音 频 播 放 器 的 设 计 全 过 程 。关 键 词 JAVA 多 媒 体 , 音 频 , 声 音 播 放一 引 言JAVA 是 SUN 公 司 推 出 的 面 向 对 象 程 序 设 计 语 言 , 它 将 面 向 对 象 ,平 台 无 关性 ,稳 固 性 ,安 全 性 ,多 线 程 等 特 性 集 于 一 身 ,具 有 强 大

3、 的 动 画 ,多 媒 体 和 交 互 功能 ,使 WWW(WORLD WIDE WEB)进 入 一 个 全 新 的 交 互 领 域 ,是 INTERNET 网 络 应 用开 发 最 重 要 的 语 言 之 一 。 多 媒 体 制 作 一 直 是 计 算 机 应 用 中 最 具 魅 力 的 部 分 ,JAVA 能 制 作 诱 人 的 多 媒 体 WEB 起 始 页 ,使 您 的 WEB 站 点 更 具 有 吸 引 力 。为 此 ,我 们 先 简 要 解 释 JAVA 的 声 音 技 术 , 并 利 用 此 技 术 设 计 与 实 现 了 一 个 多 媒 体音 频 播 放 系 统 ,其 能 对

4、所 播 放 的 文 件 进 行 控 制 ( 包 含 暂 停 , 停 止 等 功 能 ) 。二 JAVA 的 声 音 技 术在 JAVA2 平 台 出 现 之 前 , JAVA 语 言 只 能 处 理 电 话 音 质 的 声 音 , 以 单 声 道8KHZ 的 采 样 频 率 存 储 为 -law AU 文 件 。 JAVA2 平 台 增 加 了 对 AIFF, WAV 以及 三 种 MIDI 文 件 类 型 的 支 持 。 所 支 持 的 三 种 MIDI 文 件 格 式 为 MIDI 文 件 类 型0、 MIDI 文 件 类 型 1、 以 及 RMF。应 用 程 序 接 口 API1.0 版

5、 提 供 了 一 个 易 于 使 用 的 工 具 集 , 使 程 序 员 可 以 访 问 底层 的 合 成 与 演 奏 引 擎 , 从 而 扩 展 了 JAVA 声 音 的 应 用 。 其 中 两 个 重 要 的 领 域 是 创建 数 字 化 音 频 以 及 乐 器 指 令 数 字 化 接 口 MIDI。 由 于 提 供 了 大 量 的 底 层 支 持 功 能 ,所 以 程 序 员 能 输 入 输 出 声 音 , 控 制 MIDI 设 备 , 并 能 查 询 系 统 运 作 情 况 。( 一 ) 声 音 文 件 类 型 简 介1.主 要 的 声 音 文 件 类 型 如 下 :AU - (扩 展

6、 名 为 AU 或 SND)适 用 于 短 的 声 音 文 件 , 为 Solaris 和 下 一 代 机器 的 通 用 文 件 格 式 , 也 是 JAVA 平 台 的 标 准 的 音 频 格 式 。 AU 类 型 文 件 使 用 的 三种 典 型 音 频 格 式 为 : 8 位 -law 类 型 ( 通 常 采 样 频 率 为 8kHz), 8 位 线 性 类型 , 以 及 16 位 线 性 类 型 。 WAV - (扩 展 名 为 WAV)由 Microsoft 和 IBM 共 同 开 发 ,对 WAV 的 支 持 已 经被 加 进 Windows 95 并 且 被 延 伸 到 Wind

7、ows 98. WAV 文 件 能 存 储 各 种 格 式 包 括 -law,a-law 和 PCM (线 性 )数 据 。 他 们 几 乎 能 被 所 有 支 持 声 音 的 Windows应 用 程 序 播 放 。 AIFF - (扩 展 名 为 AIF 或 IEF)音 频 互 换 文 件 格 式 是 为 Macintosh 计 算 机 和Silicon Graphics (SGI)计 算 机 所 共 用 的 标 准 音 频 文 件 格 式 。 AIFF 和 AIFF-C 几 乎 是 相 同 的 ,除 了 后 者 支 持 例 如 -law 和 IMA ADPCM 类 型 的 压 缩 。MI

8、DI - (扩 展 名 为 MID)乐 器 数 字 接 口 MIDI 是 为 音 乐 制 造 业 所 认 可 的 标 准 ,主 要 用 于 控 制 诸 如 合 成 器 和 声 卡 之 类 的 设 备 。 MIDI 文 件 不 包 含 数 字 音 频 采 样 , 而 是 包 括 一 系 列 指 令 , 这 些 指 令 控 制 把 来 自 不同 乐 器 上 的 音 符 序 列 合 成 乐 曲 。 一 些 MIDI 文 件 包 含 附 加 指 令 来 为 各 种 合 成 设 置进 行 编 程 。 大 多 数 合 成 器 支 持 MIDI 标 准 , 所 以 在 一 个 合 成 器 上 制 作 的 音

9、 乐 能 够 在 另 一 个上 播 放 。 有 MIDI 接 口 的 计 算 机 能 操 纵 MIDI 数 据 以 产 生 新 音 乐 或 音 响 效 果 。例 如 , 一 个 完 整 的 音 乐 作 品 可 以 通 过 一 个 软 件 驱 动 的 命 令 转 换 成 全 新 的 形 式 。2.JAVA 声 音 引 擎 支 持 两 种 MIDI 文 件 类 型 : MIDI 类 型 0 文 件 -包 含 仅 仅 一 个 序 列 , 所 有 相 关 的 乐 器 部 分 被 包 含 在 同 一 个 逻辑 “磁 道 “上 。 MIDI 类 型 1 文 件 -包 含 多 重 的 “磁 道 “使 得 不

10、 同 的 乐 器 被 逻 辑 地 分 开 , 从 而使 对 声 音 的 操 作 和 重 组 更 加 容 易 。RMF - (扩 展 名 为 RMF)混 合 音 乐 格 式 是 由 Beatnik 设 计 出 来 的 混 合 文 件 类 型 ,通 过 交 互 式 设 定 将 MIDI 和 音 频 采 样 封 装 在 一 起 。 RMF 好 比 是 一 个 所 有 音 乐 相关 文 件 的 容 器 。 RMF 也 包 含 对 有 关 版 权 的 详 细 文 件 说 明 的 支 持 。 RMF 文 件 可 以包 含 多 个 由 不 同 艺 术 家 创 作 的 存 储 为 MIDI 类 型 或 音 频

11、 采 样 类 型 的 作 品 ,每 个都 关 联 着 相 关 的 版 权 信 息 。3.JAVA 声 音 音 频 引 擎JAVA 声 音 引 擎 为 多 媒 体 创 建 , 同 时 考 虑 了 游 戏 设 计 和 发 布 WEB 内 容 。 用标 准 的 MIDI 文 件 、 RMF 文 件 、 并 且 /或 来 自 任 何 源 的 采 样 , 该 引 擎 将 播 放 音 乐或 制 造 音 响 效 果 , 同 时 尽 可 能 少 用 CPU。 它 提 供 完 全 的 播 放 控 制 , 具 有 混 合 音响 的 能 力 并 可 实 时 地 回 应 用 户 的 输 入 。 4JAVA 声 音 引

12、 擎 是 软 件 MIDI 合 成 器 ,采 样 播 放 设 备 ,以 及 16 位 立 体 混 声 器 。它 支 持 混 合 直 到 64 位 的 立 体 MIDI 声 音 和 音 频 采 样 。 它 直 接 支 持 MIDI 类 型0 和 类 型 1 文 件 以 及 从 8 位 设 备 到 16 位 乐 器 的 波 表 合 成 。 该 引 擎 支 持 所 有 通 用的 MIDI 控 制 器 并 且 包 含 象 回 声 处 理 , LFO (控 制 过 滤 器 或 立 体 声 设 备 )之 类的 特 性 , 以 及 ADSR 信 封 (播 放 时 整 形 采 样 )。即 使 用 上 所 有

13、的 功 能 , JAVA 声 音 引 擎 在 一 个 90Mhz 的 奔 腾 计 算 机 上 也 占 用不 超 过 30 的 CPU 时 间 。 它 还 能 通 过 有 选 择 地 禁 用 不 需 要 的 特 性 , 使 其 变 得 更 加高 效 一 些 。 另 外 , 它 发 布 了 存 储 在 压 缩 的 RMF 音 乐 文 件 中 的 丰 富 的 内 容 。Thomas Dolby Robertson 的 “她 用 科 学 照 亮 了 我 “, 一 首 7 分 21 秒 的 歌 曲 ,如 存 储 为 CD 音 质 的 文 件 足 足 占 用 70M 字 节 空 间 。 如 果 以 RMF

14、 格 式 存 储 只 需 大约 636 KB,是 120:1 的 减 少 , 同 时 丝 毫 不 减 音 质 。(二 ) JAVA 平 台 声 音 的 简 要 介 绍在 JDK 1.0.x 及 JDK 1.1.x 下 , AudioClip 接 口 提 供 下 列 机 能 :AudioClip 接 口播 放 循 环 停 止恢 复 和 播 放 声 音 最 简 单 的 方 法 是 通 过 Applet 类 的 play()方 法 。 调 用play()方 法 有 如 下 二 种 方 式 : play()-带 有 一 个 参 数 , 一 个 URL 对 象 ,装 载 并 演 奏 储 存 在 URL

15、处 的 声 音片 断 。play()-带 有 二 个 参 数 , 基 本 URL 和 文 件 夹 路 径 名 ,装 载 并 演 奏 声 音 文 件 。第 一 参 数 经 常 是 对 getCodeBase()或 getDocumentBase()的 调 用 。 下 列 代 码 片 断 举 例 说 明 了 直 接 播 放 hello.au 的 方 法 。 AU 文 件 与 小 应 用 程序 位 于 相 同 文 件 夹 或 目 录 。play(getCodeBase(), “hello.au“);play()一 旦 被 调 用 立 刻 开 始 恢 复 和 播 放 声 音 。 如 果 声 音 文 件

16、 不 能 被 查 找 ,将 不 会 有 出 错 信 息 ,仅 仅 是 沉 默 。启 动 和 停 止 声 音 文 件 ,或 循 环 播 放 ,你 必 须 用 applet 的 getAudioClip 方法 把 它 装 载 进 入 AudioClip 对 象 , 类 似 上 面 play()方 法 的 参 数 ,getAudioClip 方 法 要 用 一 个 或 两 个 参 数 ,当 作 播 放 的 指 示 。 第 一 个 或 唯 一 的一 个 参 数 是 URL 参 数 , 用 来 指 示 声 音 文 件 的 位 置 , 第 二 参 数 是 文 件 夹 路 径 指 针 。 下 列 代 码 行

17、 举 例 说 明 加 载 声 音 文 件 进 入 剪 贴 对 象 : AudioClip co = getAudioClip(getCodeBase(), “horns.wav“);getAudioClip()方 法 仅 仅 能 被 applet 内 调 用 。 随 着 JAVA2 的 引 入 , 应 用 程序 也 能 用 Applet 类 的 newAudioClip 方 法 装 入 声 音 文 件 。 前 一 例 子 可 以 改 写 如下 以 用 于 Java 应 用 程 序 :AudioClip co = newAudioClip(“horns.wav“);在 你 已 创 建 Audio

18、Clip 对 象 之 后 ,你 能 用 该 对 象 调 用 play()、 loop()以 及stop()方 法 。 如 果 getAudioClip 或 newAudioClip 方 法 不 能 找 到 指 定 的 声 音文 件 , AudioClip 对 象 的 值 将 是 空 的 。 试 着 播 放 空 对 象 会 导 致 出 错 , 所 以 标 准 的过 程 首 先 是 对 该 条 件 进 行 检 测 。接 下 来 是 一 个 完 整 的 程 序 设 计 示 例 , 该 程 序 将 产 生 一 个 applet, 当 鼠 标 在该 小 应 用 程 序 applet 范 围 内 按 下

19、时 会 播 放 flute+hrn+mrmba.au 音 乐 样 本 。此 AU 示 例 文 件 与 applet 在 相 同 目 录 或 文 件 夹 下 的 。import java.applet.*;import java.awt.event.*;public class PlayAudio extends Appletimplements MouseListener AudioClip audio;public void init() audio = getAudioClip(getDocumentBase(),“flute+hrn+mrmba.au“);addMouseListener

20、(this);public void mousePressed(MouseEvent evt) if (audio != null) audio.play();public void mouseEntered (MouseEvent me) public void mouseExited (MouseEvent me) 6public void mouseClicked (MouseEvent me) public void mouseReleased(MouseEvent me) 到 此 为 止 , 我 们 已 经 简 单 介 绍 了 JAVA 的 声 音 技 术 , 下 面 我 们 该 做

21、 的 就 是 利用 此 技 术 制 作 一 个 基 于 JAVA 音 频 播 放 器 。三 基 于 JAVA 的 音 频 播 放 器 的 实 现( 一 ) 设 计 过 程首 先 , 该 音 频 播 放 系 统 要 有 一 个 主 窗 口 ( 见 图 一 ) , 作 为 使 用 该 音 频 播 放 器 的操 作 界 面 。 其 次 , 由 于 该 音 频 播 放 器 是 一 个 菜 单 驱 动 的 多 媒 体 应 用 , 就 是 要 对 每 个菜 单 项 设 立 相 应 的 操 作 ; 选 择 “播 放 ”菜 单 项 , 则 开 始 播 放 音 乐 , 用 户 就 可 以听 到 声 音 了 。

22、选 择 “暂 停 ”菜 单 项 , 则 就 暂 停 正 在 播 放 的 音 乐 。 选 择 “停 止 ”菜 单 项 , 则 就 终 止 音 频 的 播 放 。 最 后 , 来 看 看 整 个 音 频 播 放 器 系 统 的 设 计 流 程 。 如图 二 所 示在 了 解 整 个 系 统 的 设 计 流 程 后 , 下 面 开 始 实 现 该 音 频 播 放 器 系 统 了 。( 二 ) 伪 代 码 的 设 计前 面 我 们 了 解 了 构 成 媒 体 播 放 器 GUI 的 各 个 部 件 , 下 面 要 开 始 “设 想 ”一下 这 个 程 序 的 具 体 构 造 。 在 正 式 编 写 代

23、 码 之 前 , 我 们 先 用 伪 代 码 的 形 式 写 出 这 个 程序 的 运 行 过 程 , 以 后 正 式 编 写 代 码 时 只 需 把 伪 代 码 翻 译 成 JAVA 代 码 即 可 。 下面 给 出 了 媒 体 播 放 器 的 伪 代 码 描 述 :应 用 的 类 名 称 : Application1 Frame1main-构 建 应 用 程 序 -调 用 Frame1 类 -创 建 主 窗 口 -主 窗 口 各 菜 单 初 始 化 。下 面 来 看 看 具 体 的 代 码 实 现 :首 先 在 Frame1 类 中 声 明 如 下 两 个 变 量 :Player play

24、er; String path;Player 变 量 是 Player 类 的 对 象 , 它 是 播 放 器 的 对 象 ; path 表 示 当 前 打开 媒 体 文 件 的 目 录 。 下 面 来 看 看 “播 放 ”菜 单 项 的 动 作 触 发 执 行 的 代 码 :void jButton1_actionPerformed(ActionEvent e) player.start() ;这 里 调 用 的 类 player 中 的 start()方 法 。其 次 是 播 放 界 面 的 设 计 与 实 现 :播 放 界 面 的 源 代 码 如 下 :private void jbIn

25、it() throws Exception contentPane = (JPanel) this.getContentPane();contentPane.setLayout(null);this.setSize(new Dimension(400, 300);this.setTitle(“ Mp3 Player“);jPanel1.setBounds(new Rectangle(17, 30, 353, 238);jPanel1.setLayout(null);jButton1.setBounds(new Rectangle(26, 163, 73, 25);jButton1.setTex

26、t(“u64ADu653E“);jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this);jButton2.setBounds(new Rectangle(141, 163, 73, 25);jButton2.setSelected(false);jButton2.setText(“u6682u505C“);jButton2.addActionListener(new Frame1_jButton2_actionAdapter(this);jButton3.setBounds(new Rectangle(256, 16

27、4, 73, 25);jButton3.setText(“u505Cu6B62“);jButton3.addActionListener(new Frame1_jButton3_actionAdapter(this);jPanel1.add(jButton3, null);jPanel1.add(jButton1, null);jPanel1.add(jButton2, null);contentPane.add(jPanel1, null);( 三 ) 编译和运行 8JAVA 代码分别保存在 Application1.java,Frame1.java 文件中,则编译命令如下:javac Ap

28、plication1.java javac Frame1.java 编译成功后,编译器生成.class 文件:Application1.clas, Frame1_jButton1_actionAdapter.class,Frame1_jButton2_actionAdapter.class Frame1_jButton3_actionAdapter.class ,Frame1.class.然后执行类 Application1 即可四结论通 过 本 次 的 毕 业 设 计 , 成 功 的 完 成 了 基 于 JAVA 的 音 频 播 放 器 的 设 计 和 实 现 。实 现 的 了 对 多 种

29、声 音 文 件 的 播 放 。 通 过 自 己 编 写 的 小 应 用 程 序 来 实 现 用 户 的 交 互 式输 入 和 实 现 音 乐 控 制 。由 于 作 者 的 水 平 有 限 , 关 于 声 音 文 件 的 解 码 等 等 方 面 没 有 考 虑 到 制 作 中 去 , 这些 方 面 有 待 进 一 步 的 探 索 和 完 善 , 同 时 也 将 是 作 者 今 后 的 工 作 中 的 研 究 任 务 。参考文献1宋现锋,趣味程序导学 JAVA2,清华大学出版社,2002.012潘传帮等,JAVA 实效编程百例,人民邮电出版社,2003.043徐雅静等,Jbulider6 入门与提

30、高,人民邮电出版社,2002.064陆正中等,Jbulider 软件开发项目实践,清华大学出版社, 2004.035电脑编程技巧与维护杂志社,JAVA 编程精选集锦,科学出版社,2003.066美 Kenneth F. Krutsch , JAVA 用户界面编程指南,电子工业出版社,2002.027美Laura Lemay, JAVA 2 编程 21 天自学通,清华大学出版社, 2002.04The Creation of Multimedia Using Java LanguageAbstract This paper briefly introduces the technology of JAVA Multimedia, especially on JAVA sound technology. It mainly elaborates the introduction of the sound technology and how to make the multimedia with JAVA language.Keywords JAVA, Sound, Creation of Sound technology

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报