使用JLayer类来播放mp音频
(Java Layer)是一个用于播放 mp3 音频文件的开源项目,可以简单地播放一个 mp3 音频文件。JLayer 支持的音频文件
相关网站:
JLayer Home:
http://www.javazoom.net/javalayer/javalayer.html
JLayer DocsApi:
http://www.javazoom.net/javalayer/docs/docs1.0/index.html
JLayer 下载
下载 JLayer 的开发包,下载地址:
http://www.javazoom.net/javalayer/sources.html
下载完后解压,得到一个jl1.0.1.jar包:
JLayer 播放 MP3
创建 Java 工程,把jl1.0.1.jar包添加到工程中(jl1.0.1.jar 的 JDK 编译版本较低,可以重新编译,或直接使用 src 文件夹内的源码)。
package com.xiets.jlayer;
import javazoom.jl.player.Player;
import java.io.File;
import java.io.FileInputStream;
public class Main {
public static void main(String[] args) throws Exception {
// 播放一个 mp3 音频文件, 代码很简单
File file = new File("demo.mp3");
Player player = new Player(new FileInputStream(file));
player.play();
}
}
Player 类只有少数的几个方法:
void play() // 播放
boolean play(int frames) // 只播放指定数量的帧数
void close() // 停止播放, 关闭播放器
boolean isComplete() // 是否播放完毕
int getPosition() // 返回当前播放位置, 单位: 毫秒
Player 类没有 暂停/恢复播放、设置播放位置等方法,似乎只能用来直接简单地播放 mp3 音频,要想作为一个完整的音频播放器使用,可能还需要其他实现。
其中我为了实现循环播放一段音乐,但发现单纯的在循环语句中调用play()方法,只能播放一遍,后来我看到一种方法,是这样的:
File file;
file = new File("F://music.mp3");
while(true)
{
Player player = new Player(new FileInputStream(file));
player.play();
}
这样就可以循环播放了。