http://www.jsresources.org/examples/
http://java.sun.com/products/java-media/sound/samples/JavaSoundDemo/
timeSeries设置一个元素过期周期, 不然程序会卡死
timeSeries.setMaximumItemAge(long periods)!!!
下面的文章 来源于
http://www.zhlwish.com/2011/07/21/java-play-music/
Java播放音乐比较麻烦,主要原因是Java的跨平台导致。Java的播放音乐的API主要包括两部分,一是Java SE里面包含的Java Sound API,二是作为独立于Java SE之外的Java Music Framework。两者的主要差别在于所支持的声音文件格式不同。
本文只是对相关技术进行了简单罗列,收集了相关的链接地址,需要深入了解请进入相关链接深入阅读。
Java平台提供的sound API
支持的音频文件格式只有AIFF,AU,WAV
支持的音乐文件格式有MIDI,RMF(Rich Music Format)
声音格式:8位和16位单声道以及立体声音频数据,采样率在8khz和48khz之间
使用第三方的库播放MP3格式的音乐
How to Play an MP3 File in Java:JLayer MP3 Library
使用Java Music Framework播放MP3格式的音乐
- Java Game Programming: Playing Sound:该文中介绍了如何使用Java Media Framework播放MP3格式的音乐
- JMF主页
- JMF现在的最新版本为2.0,API下载地址
JMF播放MP3示例代码:请把音乐放到Eclipse工程目录的跟目录下(和src目录同级别)
package com.zhlwish.javasound;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import javax.media.*;
public class Main {
private Player player;
public static void main(String[] args){
Main m = new Main();
m.play("可惜不是你.mp3");
}
public void play(String fileName) {
try {
File file = new File(fileName);
URL url = file.toURI().toURL();
MediaLocator locator = new MediaLocator(url);
player = Manager.createPlayer(locator);
player.addControllerListener(new ControllerListener() {
public void controllerUpdate(ControllerEvent event) {
if (event instanceof EndOfMediaEvent) {
player.stop();
player.close();
}
}
});
player.realize();
player.start();
} catch (NoPlayerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Java播放MIDI实例代码:
AudioPlayer mgp = AudioPlayer.player;
AudioStream bgm;
AudioData md;
ContinuousAudioDataStream loop = null;
try{
bgm = new AudioStream(new FileInputStream());
md = bgm.getData();
loop = new ContinuousAudioDataStream (md);
}catch(Exception e){
e.printStackTrace();
}
mgp.start(loop);
2011-7-28更新:
JMF在某些联想(Lenovo)的机器上安装失败,不清楚具体原因,而且JMF已经年久失修,不推荐使用。
最新推荐的是本文中曾提到,但是一笔带过的一个库(内疚中…),叫JLayer,里面自带两个后台播放器实现Player和AdvancedPlayer,具体的使用方法可以参考http://www.youtube.com/watch?v=f-7cgX_I220
我摘抄了部分代码如下:
File file = new File("xxx.mp3");
FileInputStream fInputStream = new FileInputStream(file);
Player p = new Player(fInputStream);
p.play();