网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  在java应用程序中播放音乐     
  文章作者:未知  文章来源:水木森林  
  查看:123次  录入:管理员--2007-11-17  
 
  天 津 大 学 电 子 系 范 仲 方
zffan@public.tpt.tj.cn

--------------------------------------------------------------------------------

现 在 关 于 如 何 在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 以 外 的 编 译 器 上 运 行。
 
 
上一篇: 在java applet中如何显示另外一个html页面?    下一篇: 在java应用软件中加入logging
  相关文档
jcp失去活力java.net能否取而代之? 11-17
hibenate持久化技术中多对多关系的应用 01-31
java socket编程之一 11-17
aop中的主要技术(二) 11-17
分享关于java语言中的函数编程 11-17
why i get solaris certification? 11-17
深入浅出java多线程程序设计 11-16
java数组学习心得,欢迎拍砖 11-17
对非string类型进行校验时的出错处理 11-17
一种不使用数据源用java直接连接数据源的方法 11-17
jstl 入门(2):探讨 core——使用定制标记进行流控制和 url 管理 11-17
chinaitlab的scjp远程培训内容归纳 11-17
diy有创意的网站错误信息 11-17
java程序员的存储过程 11-17
高级--深入浅析spring的一些负面因素 02-26
跟你分享——.net项目制作安装程序 11-17
hibernate的关联关系映射 11-17
spring multiaction的简单示例 11-17
软件测试认识中的误区 11-17
利用mvc模式开发java应用程序 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息