我正在尝试将音频(mp3 / wav等)转换为字节数组。我使用inputStream进行字节数组转换。 问题是,在几百个样本后,我只收到零。 起初我认为问题出在文件中,所以我尝试用另一个文件调试并遇到了同样的问题。 我认为问题在于代码,所以我尝试使用IOUtils并获得完全相同的resualts。
谁能告诉我我做错了什么?
我使用的代码:
app.get('/', function (req, res) {
Flickr.tokenOnly(flickrOptions, function(error, flickr) {
//call someother method to get photos etc. and finally call res.send()
res.send(photos); // where photos is obtained from flickr or anything you can pass which should be response of you request.
});
});
使用IOUtils的备用版本:
File file = new File(path);
final InputStream inputStream = new FileInputStream(file);
byte[] byteSamples = inputStreamToByteArray(inputStream);
public 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();
}
更新:我尝试使用BufferedInputStream完成它,结果仍然完全相同。
byte[] byteSamples = IOUtils.toByteArray(inputStream);
答案 0 :(得分:1)
完成后你需要关闭流。