所以,我正在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);
}
编辑:也许我应该首先添加标题?