Java 播放已解码的MP3文件
我正在尝试将base64编码为一个mp3文件,将其保存到数据库,然后稍后检索并解码并播放该文件。我已经输入了以下代码,但它似乎不起作用。我能做些什么来让它工作Java 播放已解码的MP3文件,java,encoding,base64,Java,Encoding,Base64,我正在尝试将base64编码为一个mp3文件,将其保存到数据库,然后稍后检索并解码并播放该文件。我已经输入了以下代码,但它似乎不起作用。我能做些什么来让它工作 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javazoom.jl.player.Player;
import org.apache.commons.codec.binary.Base64;
public class ReadAudioFile {
public static void main(String[] args) throws Exception {
String file = "C:\\Users\\Mukkra01\\Downloads\\apple.mp3";
InputStream byteInputStream = new FileInputStream(file);
System.out.println(Base64.encodeBase64(inputStreamToByteArray(byteInputStream)));
byte[] decodeFile = Base64.decodeBase64(Base64.encodeBase64(inputStreamToByteArray(byteInputStream)));
play(decodeFile);
}
public static byte[] inputStreamToByteArray(InputStream inStream) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[8192];
int bytesRead;
while ((bytesRead = inStream.read(buffer)) > 0) {
baos.write(buffer, 0, bytesRead);
}
return baos.toByteArray();
}
public static void play(byte[] decodeFile) {
try {
ByteArrayInputStream byteInputStream = new ByteArrayInputStream(decodeFile);
//BufferedInputStream buffer = new BufferedInputStream(new FileInputStream("C:\\Users\\Mukkra01\\Downloads\\apple.mp3"));
Player player = new Player(byteInputStream);
player.play();
} catch (Exception e) {
System.out.println(e);
}
}
}
尝试对文本文件进行编码/解码。如果这样做有效,您的问题在于MP3播放。如果它不起作用,那么你知道你的问题是反转换与转换不匹配。