原文链接:https://blog.youkuaiyun.com/qq_26641781/article/details/78083951
环境
需要先导入一个jar包 jl1.0.1.jar
备用网址:http://www.javazoom.net/javalayer/sources.html
示例代码1
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import javazoom.jl.player.Player;
public class MP3Player {
private String filename;
private Player player;
public MP3Player(String filename) {
this.filename = filename;
}
public void play() {
try {
BufferedInputStream buffer = new BufferedInputStream(new FileInputStream(filename));
player = new Player(buffer);
player.play();
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) {
MP3Player mp3 = new MP3Player("F:\\KuGou\\贝贝帅、林一 - 处处吻 (片段).mp3");
mp3.play();
}
}
示例代码2:
package org.zc12021.music;
import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.Player;
import org.apache.commons.lang3.concurrent.BasicThreadFactory;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
/****************************************************
* 描述:
* 原 文链接:https://blog.youkuaiyun.com/qq_26641781/article/details/78083951
*
* @author majker
* @date: 2020/3/3
* @version 1.0
**************************************************/
public class MusicThread extends Thread {
public static void main(String[] args) {
try {
MusicThread p = new MusicThread();
Thread thread = new Thread(p);
thread.start();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void run() {
//手动创建线程池
ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(2,
new BasicThreadFactory.Builder().namingPattern("example-schedule-pool-%d").daemon(false).build());
executorService.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
//do something
try {
play();
} catch (Exception e) {
e.printStackTrace();
}
}
}, 0, 1000, TimeUnit.MILLISECONDS);
}
/**
* 运行示例
*/
public void play() {
try {
String filename = "F:\\KuGou";//\\贝贝帅、林一 - 处处吻 (片段).mp3";
Player player = null;
File file = new File(filename);
List<File> fileList = null;
if (file.isDirectory()) {
File[] files = file.listFiles();
fileList = Arrays.asList(files);
} else {
fileList = new ArrayList<>();
fileList.add(file);
}
for (File f : fileList) {
String path = f.getPath();
boolean isExist = (!path.contains(".mp3"));
if (isExist) {
continue;
}
System.out.println(path);
playMusic(path);
}
} catch (Exception e) {
System.out.println(e);
}
}
/**
* 核心 播放音乐
* @param path
* @throws FileNotFoundException
* @throws JavaLayerException
*/
private void playMusic(String path) throws FileNotFoundException, JavaLayerException {
Player player;
BufferedInputStream buffer = new BufferedInputStream(new FileInputStream(path));
player = new Player(buffer);
player.play();
}
}