将数据从文件转换为float

时间:2013-12-20 13:17:57

标签: android audio-recording typeconverter

所以,我正在android中创建应用程序,我编写了下面的代码,将存储在文件中的音频数据(以字节为单位)转换为float。问题是,我得到了很多NaN值,而且其他值看起来不像实际的音频数据。我知道,大于[255 255 127 127]的值会溢出并导致NaN,但播放时音频很好。

private float[] FileToFloat(File file, int allSamples){
        byte[] byteBuffer = null;
        byteBuffer = new byte[allSamples];
        FileInputStream in = null;
        try {
            in = new FileInputStream(file);
        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
        }

        try {
            in.read(byteBuffer);
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

        ByteBuffer bb = ByteBuffer.wrap(byteBuffer);

        float[] floatBuffer = new float[byteBuffer.length/4];

        for(int i = 0; i < floatBuffer.length; i++){
            floatBuffer[i] = bb.getFloat(i*4);}

        return(floatBuffer);
    }
编辑:也许我应该首先添加标题?

0 个答案:

没有答案