java播放合成MP3方法
<!-- https://mvnrepository.com/artifact/javazoom/jlayer --> <dependency> <groupId>javazoom</groupId> <artifactId>jlayer</artifactId> <version>1.0.1</version> </dependency>
package com.chunbaosheng;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import javazoom.jl.player.Player;
public class AudioPlayTest {
private String filename;
private Player player;
private AudioPlayTest(){}
public AudioPlayTest(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) {
//播放song
MP3Player mp3 = new MP3Player("D:\\Download\\1.mp3");
mp3.play();
//合并MP3 指接到后面
List<String> files = new ArrayList<String>(3);
files.add("D:\\Download\\1.mp3");
files.add("D:\\Download\\2.mp3");
try {
combine("D:\\Download\\3.mp3",files);
} catch (Exception e) {
e.printStackTrace();
}
}
//合并方法combine
public static boolean combine(String outFile, List<String> inFiles) throws Exception
{
File[] files = new File[inFiles.size()];
for (int i = 0; i < files.length; i++)
{
files[i] = new File(inFiles.get(i));
}
FileInputStream fis = null;
// 合并其实就是文件的续写,写成true
FileOutputStream fos = new FileOutputStream(outFile, true);
for (int i = 0; i < files.length; i++)
{
fis = new FileInputStream(files[i]);
int len = 0;
for (byte[] buf = new byte[1024 * 1024]; (len = fis.read(buf)) != -1;)
{
fos.write(buf, 0, len);
}
}
fis.close();
fos.close();
return true;
}
}