在你说“Google it”之前,我已经尝试过了,找到了一些有趣的文章,但是没有一个有效。
我需要将网站上的mp3文件转换为字节流,以便稍后可以将其保存到本地文件中。
这是我的代码(最重要的部分):
Url url = new Url("someUrl");
URLConnection conn = url.openConnection();
byte[] result = inputStreamToByteArray(conn.getInputStream());
// .... some code here
byteArrayToFile(result, "tmp.mp3");
public byte[] inputStreamToByteArray(InputStream inStream){
InputStreamReader in = new InputStreamReader(inStream):
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int next = inStream.read();
while (next > -1){
baos.write(next);
next = in.read();
}
byte[] result = baos.toByteArray();
baos.flush();
in.close();
return result;
}
public void byteArrayToFile(byte[] byteArray, String outFilePath){
FileOutputStream fos = new FileOutputStream(outFilePath);
fos.write(byteArray);
fos.close()
}
代码编译没有错误。
与url的连接是有效的。它发送了正确的响应。
问题出现在转换中。我也通过byteArrayToFile()获得了新文件,并具有适当的长度,但我无法在任何播放器中播放它。它显示长度为00:00,无法播放。
顺便说一下,我想避免使用任何第三方库。但如果没有其他办法...