- 浏览: 182238 次
- 性别:
- 来自: 北京
文章分类
最新评论
/** *//**
* 自动播放,循环停止后结束。
*
* @return
*/
public boolean AutoPlay() ...{
_isRun = true;
_thread = new Thread(this);
_thread.start();
return _playing;
}
/** *//**
* 停止播放
*/
public void stop() ...{
if (_audio != null && _audio.isActive()) ...{
try ...{
_audio.stop();
} catch (Exception e) ...{
}
}
if (_midi != null) ...{
_midi.stop();
}
_playing = false;
_isRun = false;
}
/** *//**
* 释放数据
*
*/
public void reset() ...{
stop();
_loop = false;
_soundType = 0;
if (_midi != null) ...{
_midi.close();
_midi = null;
}
if (_audio != null && _audio.isOpen()) ...{
_audio.close();
_audio = null;
}
_isRun = false;
_thread = null;
}
/** *//**
* 设定MetaMessage
*/
public void meta(MetaMessage meta) ...{
// 判断是否循环播放MIDI
if (_loop && _soundType == SoundData._L_SOUNDTYPE_MIDI
&& meta.getType() == 47) ...{
if (_midi != null && _midi.isOpen()) ...{
_midi.setMicrosecondPosition(0);
_midi.start();
}
}
}
public void run() ...{
while (_isRun) ...{
play();
// 因为播放类型唯一,所以只会返回一个_playing结果,以此判定。
if (_midi != null) ...{
_playing = _midi.isRunning();
}
if (_audio != null) ...{
_playing = _audio.isRunning();
}
// 当播放停止
if (!_playing) ...{
// 释放
reset();
}
try ...{
Thread.sleep(_sleepTime);
} catch (InterruptedException e) ...{
e.printStackTrace();
}
}
}
public int getSleepTime() ...{
return _sleepTime;
}
/** *//**
* 设定AutoPlay线程循环时间。
*
* @param time
*/
public void setSleepTime(int time) ...{
_sleepTime = time;
}
}
这时我们需要面对的,仅是封装为实体的SoundData数据和SoundPlay操作,而不必和繁复的javax.sound再打交道。
调用方法如下:
import org.loon.framework.game.helper.StreamHelper;
import org.loon.framework.game.net.URI;
import org.loon.framework.game.sound.SoundData;
import org.loon.framework.game.sound.SoundPlay;
/** *//**
* <p>Title: LoonFramework</p>
* <p>Description:SoundPlay播放测试</p>
* <p>Copyright: Copyright (c) 2007</p>
* <p>Company: LoonFramework</p>
* @author chenpeng
* @email:ceponline@yahoo.com.cn
* @version 0.1
*/
public class SoundPlayTest ...{
static void selectPlay(int ftype)...{
SoundData data=null;
switch(ftype)...{
//通过loonframework下uri从网络播放音乐
case 0:
data=new SoundData(new URI("http://looframework.sourceforge.net/midi/谁是大英雄.mid"),SoundData._L_SOUNDTYPE_MIDI,false);
break;
//通过本地资源下音乐文件的byte[]对象播放音乐
case 1:
byte[] bytes=StreamHelper.GetResourceData("/midi/谁是大英雄.mid");
data=new SoundData(bytes,SoundData._L_SOUNDTYPE_MIDI,false);
break;
//通过音乐文件路径播放音乐
case 2:
data=new SoundData("C:/谁是大英雄.mid",SoundData._L_SOUNDTYPE_MIDI,false);
break;
}
SoundPlay play=new SoundPlay();
//AutoPlay与Play方法的区别在于,AutoPlay播放完毕会自动停止并释放资源,play需手动中止。
//play.play(data);
play.AutoPlay(data);
}
public static void main(String[]args)...{
selectPlay(2);
}
}
更详细方法,会待Loonframework-game完全公布后,再进行解释。
另:由于StreamHelper关联其他Loonframework中方法,暂不给出,inputStream转byte[]可用如下写法:
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
//用于承接byte[]
byte[] arrayByte = null;
try ...{
// 每次传输大小为4096
byte[] bytes = new byte[4096];
bytes = new byte[is.available()];
int read;
while ((read = is.read(bytes)) >= 0) ...{
byteArrayOutputStream.write(bytes, 0, read);
}
arrayByte = byteArrayOutputStream.toByteArray();
} catch (IOException e) ...{
return null;
} finally ...{
try ...{
if (byteArrayOutputStream != null) ...{
byteArrayOutputStream.close();
byteArrayOutputStream = null;
}
if (is != null) ...{
is.close();
is = null;
}
} catch (IOException e) ...{
}
}
发表评论
-
人民币转换数字
2012-11-07 15:14 1124该贴原因: ... -
个人收集的java精品网站
2012-05-30 08:19 0java进阶网 http://www.javady.com ... -
JVM(java 虚拟机)内存设置
2011-06-02 16:37 15192JVM(java 虚拟机)内存 ... -
汉字全半角转化程序
2011-02-25 08:52 1482转载一个牛人的。方便以后查看使用: 也许. 这个代码对很多人 ... -
md5JAVA实现
2010-06-07 22:43 1204MD5算法研究 MD5的 ... -
在Java中操作串口实现短信收发2
2010-06-07 22:08 14094.发送数据成功进行初 ... -
在Java中操作串口实现短信收发1
2010-06-07 22:06 1608在Java中操作串口实现短信收发 采用串口操作进行短信收发 ... -
JVM内存参数调优
2010-06-07 22:03 1978JVM内存参数调优 我们前面所提到的堆内存(heap)是由 ... -
多线程程序设计的要点
2010-06-07 22:00 861多线程中有主内存和工 ... -
Java 处理事务精要
2010-06-07 21:58 996简单事务的概念 我 ... -
如何开公司及手续过程
2010-06-07 21:55 1219注册一个公司,首先想好经营什么,怎样经营好,再来注册。要不,注 ... -
运用加密技术保护Java源代码
2010-06-07 21:52 950Java程序的源代码很容易被别人偷看,只要有一个反编译器,任何 ... -
连接池的基本工作原理
2010-06-07 21:39 848连接池的基本工作原理 1、基本概念及原理 由上面的分析可以 ... -
高效的Java音乐播放类 2
2010-06-07 21:32 1200/** *//** * 直接播放url文件 * ... -
高效的Java音乐播放类
2010-06-07 21:26 1376Java音频播放,因为必须依赖到本地环境,所以JAVA在音频处 ... -
用开源的 InnoSetup 为 Java 应用制作 Windows 安装程序
2010-04-24 11:30 1684在这个例子里, 我将给大家展示如何使用 InnoSetup 自 ... -
Swing: 用 GlassPane 显示一个透明的正在操作框
2010-04-24 10:25 2033这个组件可以让用户看到界面里的显示但是无法操作. 需要的图: ... -
文本放大器
2010-04-24 10:06 1280/** * @(#)Text2Image.java 1.0 D ... -
在自定义 JToolTip 里面显示组件
2010-04-24 10:03 2326在自定义 JToolTip 里面显示组件 我们经常可以看 ... -
JIDE的开源Swing组件
2010-04-24 09:57 9605虽然它们早就开源了(去年吧),我也是今天才看到,虽然目前也用不 ...
相关推荐
Java音乐播放器是一种基于Java编程语言开发的软件,它能够解析和播放音频文件。这个播放器需要JMF(Java Media Framework)插件的支持,JMF是Sun Microsystems开发的一个开源框架,用于处理各种多媒体数据,包括音频...
这个插件或库使得开发者能够轻松地集成音乐播放功能,无需依赖操作系统原生的媒体播放器。在Java平台上,由于它自身的跨平台特性,这种插件尤为重要,因为它允许在不同的操作系统(如Windows、Linux、Mac OS等)上...
这个应用结合了Java作为后端处理语言以及Android作为前端平台,为用户提供了一个方便、高效的音乐播放体验。以下将详细介绍相关知识点。 1. **Java基础知识**: - **面向对象编程**:Java是基于面向对象编程的,它...
Java MP3音乐播放器是一种基于Java编程语言开发的软件,用于播放MP3音频格式的音乐。这个项目不依赖于Java Foundation Classes (JFC)中的Java Media Framework (JMF),而是选择了第三方的Java库来实现MP3播放功能。...
Java音乐盒系统选择了SQLServer2005作为其数据库管理系统,支持高效的数据查询和存储。通过SQL语句,系统能快速检索音乐信息,如歌手、专辑、歌曲名等,并提供排序、过滤等功能。 4. **Eclipse集成开发环境** 开发...
【纯Java音乐共享平台】是一个由个人开发的项目,它完全基于Java编程语言,利用Swing库构建用户界面,同时结合多线程和Socket网络通信技术来实现音乐资源的共享功能。这个平台允许用户在客户端与服务器之间进行交互...
在Java中,实现音乐播放通常涉及到以下几个关键知识点: 1. **Java基础**:首先,你需要掌握Java的基本语法,包括类、对象、方法、变量等概念,这是编写任何Java程序的基础。 2. **Java IO流**:音乐文件的读取...
在Java编程语言中,上传音乐涉及的主要知识点是IO流(Input/Output Stream)的使用,特别是对于大文件如音乐的高效处理。IO流是Java中处理数据传输的核心机制,允许程序读取或写入数据到各种来源,如硬盘、网络、...
如果是可执行的jar文件,用户只需双击即可运行,享受由Java带来的高效且美观的音乐播放体验。 总的来说,这款Java编写的炫酷界面音乐播放器展示了Java在GUI应用开发方面的强大能力,同时也提供了学习和借鉴的实例,...
Java的javax.sound包提供了音频播放的支持,开发者可以使用它来加载和播放音乐文件,增强游戏的沉浸感。 6. **文件组织结构**:项目文件结构如`KeJiJie.iml`可能是IntelliJ IDEA的项目配置文件,`src`通常存放源...
这个"碉堡版"的Java音乐播放器源码是一个很好的学习资源,可以帮助开发者深入理解Java编程,尤其是多媒体处理、GUI设计和多线程等方面的知识。通过研究和分析源码,可以提升自己的Java编程技能和实际项目开发经验。
总之,AudioCore凭借其对FFmpeg的高效封装,为Java开发者提供了便捷的音频转码和播放解决方案。无论是在服务器端处理大量音频文件,还是在客户端提供流畅的播放体验,AudioCore都是值得信赖的工具。开发者可以通过...
【JAVA版音乐播放器源代码】是一个项目,它涵盖了服务器端、客户端以及数据库的实现,目的是为了构建一个功能完备的音乐播放平台。这个平台允许用户进行登录和注册操作,通过在客户端与服务器端之间建立通信,实现了...
总结,这个“Java开发的Android音乐播放器”项目展示了Java在移动开发中的强大功能,以及如何通过良好的设计和编程实践来创建一个高质量的本地音乐播放应用。对于学习Android开发的初学者来说,这样的项目是一个很好...
测试和调试是开发过程中不可或缺的环节,以确保音乐播放的稳定性和兼容性。 总之,Java MP3播放插件结合Java Media Framework,为开发者提供了一种在Java环境中构建功能完善的音乐播放器的方法。通过学习和掌握相关...
**简约的Java音乐播放器** Java音乐播放器是一款基于Java编程语言开发的音频播放软件,其设计...开发者可能还需要关注性能优化、用户体验设计以及跨平台兼容性等问题,以提供一个高效且易于使用的音乐播放解决方案。
Java编写的音乐播放器,如"YoYoPlayer"或简称为"java Player",是一种用Java编程语言实现的多媒体应用程序,旨在为用户提供便捷、高效的音乐播放体验。在本项目中,开发者模仿了知名的TTPlayer的界面设计,为用户...
1. **Java基础知识**:理解面向对象编程概念、类、对象、继承、封装等。Java的跨平台特性使得该播放器可以在各种操作系统上运行。 2. **Java GUI设计**:使用Swing或JavaFX创建用户界面,包括播放、暂停、停止、...
YOYOPlayer的开发人员通过Java技术,为用户提供了跨平台的音乐播放体验,同时也为开发者提供了一个学习和研究Java多媒体编程的实例。用户可以通过查看源代码,了解如何利用Java进行音频处理和播放控制,而开发者则...