- 浏览: 177516 次
- 性别:
- 来自: 北京
文章分类
最新评论
/** *//**
* 直接播放url文件
*
* @param uri
* @param ftype
* @param loop
* @return
*/
public boolean load(URI uri, int ftype, boolean loop) ...{
// 刷新数据
reset();
if (uri == null) ...{
return false;
}
// 获得SoundData
SoundData data = new SoundData(uri, ftype, loop);
if (data == null || data.getData() == null) ...{
return false;
}
return init(data.getData(), data.getType(), data.getLoop());
}
/** *//**
* 初始化sound相关数据
*
* @param data
* @param ftype
* @param loop
* @return
*/
private boolean init(byte[] data, int ftype, boolean loop) ...{
boolean result = false;
ByteArrayInputStream bis = null;
try ...{
bis = new ByteArrayInputStream(data);
} catch (Exception e) ...{
bis = null;
}
if (bis == null) ...{
return false;
}
// 判断类型
switch (ftype) ...{
// MIDI
case SoundData._L_SOUNDTYPE_MIDI:
// 当MIDI不存在时
if (_midi == null) ...{
try ...{
// 获得Sequencer
_midi = MidiSystem.getSequencer();
_midi.open();
} catch (Exception ex) ...{
_midi = null;
}
if (_midi != null) ...{
_midi.addMetaEventListener(this);
}
}
// 当MIDI依旧未获得时
if (_midi != null) ...{
// 重新创建Sequence
Sequence sc = null;
try ...{
sc = MidiSystem.getSequence(bis);
} catch (Exception e) ...{
sc = null;
}
if (sc != null) ...{
try ...{
_midi.setSequence(sc);
// 获得是否循环播放
_loop = loop;
// 获得是否载入
result = true;
} catch (Exception ee) ...{
}
// 获得声音类型
_soundType = SoundData._L_SOUNDTYPE_MIDI;
}
}
try ...{
bis.close();
} catch (Exception ee) ...{
}
break;
// Wav
case SoundData._L_SOUNDTYPE_WAV:
AudioFileFormat type = null;
// 获得Audio
try ...{
type = AudioSystem.getAudioFileFormat(bis);
} catch (Exception e) ...{
type = null;
}
// 关闭流
try ...{
bis.close();
} catch (Exception ex) ...{
}
if (type == null) ...{
return false;
}
// 根据指定信息构造数据行的信息对象
DataLine.Info di = new DataLine.Info(Clip.class, type.getFormat());
// 转为Clip
try ...{
_audio = (Clip) AudioSystem.getLine(di);
} catch (Exception e) ...{
}
// 播放文件
try ...{
_audio.open(type.getFormat(), data, 0, data.length);
_loop = loop;
result = true;
} catch (Exception e) ...{
}
// 获得文件类型
_soundType = SoundData._L_SOUNDTYPE_WAV;
break;
}
return result;
}
public boolean play(SoundData data) ...{
if (!load(data)) ...{
return false;
}
return play();
}
public boolean play() ...{
switch (_soundType) ...{
case SoundData._L_SOUNDTYPE_MIDI:
try ...{
_midi.start();
_playing = true;
_soundType = SoundData._L_SOUNDTYPE_MIDI;
} catch (Exception ee) ...{
}
break;
case SoundData._L_SOUNDTYPE_WAV:
if (_audio != null) ...{
if (_loop) ...{
// 设定循环
_audio.setLoopPoints(0, -1);
_audio.setFramePosition(0);
_audio.loop(Clip.LOOP_CONTINUOUSLY);
} else ...{
// 强制设定播放位置至0
_audio.setFramePosition(0);
_audio.start();
}
_playing = true;
}
break;
}
return _playing;
}
/** *//**
* 自动播放,循环停止后结束。
*
* @param data
* @return
*/
public boolean AutoPlay(SoundData data) ...{
if (!load(data)) ...{
http:
发表评论
-
人民币转换数字
2012-11-07 15:14 1059该贴原因: ... -
个人收集的java精品网站
2012-05-30 08:19 0java进阶网 http://www.javady.com ... -
JVM(java 虚拟机)内存设置
2011-06-02 16:37 15133JVM(java 虚拟机)内存 ... -
汉字全半角转化程序
2011-02-25 08:52 1439转载一个牛人的。方便以后查看使用: 也许. 这个代码对很多人 ... -
md5JAVA实现
2010-06-07 22:43 1174MD5算法研究 MD5的 ... -
在Java中操作串口实现短信收发2
2010-06-07 22:08 13534.发送数据成功进行初 ... -
在Java中操作串口实现短信收发1
2010-06-07 22:06 1569在Java中操作串口实现短信收发 采用串口操作进行短信收发 ... -
JVM内存参数调优
2010-06-07 22:03 1900JVM内存参数调优 我们前面所提到的堆内存(heap)是由 ... -
多线程程序设计的要点
2010-06-07 22:00 816多线程中有主内存和工 ... -
Java 处理事务精要
2010-06-07 21:58 962简单事务的概念 我 ... -
如何开公司及手续过程
2010-06-07 21:55 1174注册一个公司,首先想好经营什么,怎样经营好,再来注册。要不,注 ... -
运用加密技术保护Java源代码
2010-06-07 21:52 915Java程序的源代码很容易被别人偷看,只要有一个反编译器,任何 ... -
连接池的基本工作原理
2010-06-07 21:39 812连接池的基本工作原理 1、基本概念及原理 由上面的分析可以 ... -
高效的Java音乐播放类
2010-06-07 21:34 1490/** *//** * 自动播放,循环停止后结束。 ... -
高效的Java音乐播放类
2010-06-07 21:26 1313Java音频播放,因为必须依赖到本地环境,所以JAVA在音频处 ... -
用开源的 InnoSetup 为 Java 应用制作 Windows 安装程序
2010-04-24 11:30 1646在这个例子里, 我将给大家展示如何使用 InnoSetup 自 ... -
Swing: 用 GlassPane 显示一个透明的正在操作框
2010-04-24 10:25 2001这个组件可以让用户看到界面里的显示但是无法操作. 需要的图: ... -
文本放大器
2010-04-24 10:06 1234/** * @(#)Text2Image.java 1.0 D ... -
在自定义 JToolTip 里面显示组件
2010-04-24 10:03 2265在自定义 JToolTip 里面显示组件 我们经常可以看 ... -
JIDE的开源Swing组件
2010-04-24 09:57 9513虽然它们早就开源了(去年吧),我也是今天才看到,虽然目前也用不 ...
相关推荐
转载--------高效的Java音乐播放类
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
本音乐网站是一个基于Java JSP和SERVLET技术的在线音乐平台,提供了丰富的音乐资源和高质量的音频播放服务。它采用了先进的后台管理系统,支持用户进行音乐的上传、下载、收藏和分享等操作,同时具备个性化推荐功能...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
本项目是一个基于Java语言开发的在线音乐网站,包含222个文件,主要文件类型包括Java类文件、Java源代码、XML配置文件、JSP页面、图片、JavaScript脚本、属性文件、CSS样式表和Idea缓存文件。系统设计旨在为用户提供...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机...
音乐网站系统以 Struts2 为框架进行开发,以 JSP 作为页面载体,后台数据 库使用 Mysql,在 Windows 环境下使用 MyEclipse开发工具进行开发,采用 Ajax 和 Jqury技术,使得系统更易维护。前台主要实现了用户的登陆...
基于JSP(Java Server Pages)和Servlet技术的音乐网站,通过其高效、稳定的技术架构,为用户提供了一个丰富、便捷的音乐体验空间。 JSP作为Java Web开发的核心技术之一,负责动态生成网页内容。在音乐网站中,JSP...
本系统前端使用JQuery框架对DOM操作,后端代码使用Java语言编写的,高效快速。数据库管理系统使用开源软件MYSQL,节约成本。该系统页面简洁,能够让浏览系统的用户快速查询到自己想要获得的信息,并做出相应的处理。...
《计算机毕业设计:Java实现的音乐管理系统》是一项融合创新与实践的优质学术资源,它采用了SpringBoot与Vue.js的前沿技术,构建了一个功能丰富、交互友好的音乐管理平台。该资源不仅提供了完整的源码和详尽的说明...
音乐流媒体播放及周边产品运营的信息服务管理系统能够通过互联网得到广泛的、全面的宣传,让尽可能多的用户了解和熟知音乐流媒体播放及周边产品运营的信息服务管理系统的便捷高效,不仅为群众提供了服务,而且也推广...
1. 简化开发:Spring提供了一系列的模块和工具,可以帮助开发人员更快速、更高效地开发Web应用程序。例如,Spring MVC框架可以帮助开发人员构建Web应用程序的控制器、视图和模型,简化了Web应用程序的开发过程。 2....