使用JLayer类来播放mp音频

(Java Layer)是一个用于播放 mp3 音频文件的开源项目,可以简单地播放一个 mp3 音频文件。JLayer 支持的音频文件

java读取wav声道 java如何播放音频_java

相关网站:

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();
}

这样就可以循环播放了。