只有前几百个样本从输入流读入字节数组(其余为零)

时间:2016-10-26 12:45:25

标签: java android audio

我正在尝试将音频(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);

1 个答案:

答案 0 :(得分:1)

完成后你需要关闭流。