你好,我正在尝试读取一个wav文件中的数据,以便将其作为波形绘制出来。以下是我尝试过的代码:
try {
RandomAccessFile file = new RandomAccessFile(myFile,"r");
while(file.read()>-1){
byte b1 = (byte) file.read();
byte b2 = (byte) file.read();
Log.d(TAG,"DATA:"+ (double) (b2 << 8 | b1 & 0xFF) / 32767.0);
}
file.close();
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
我的输出初始时是-1到+1之间的值,但后来只会给出DATA:0,似乎出现了无限循环,并且强制结束。据我所知,当文件结尾被达到时该循环应该终止。请问有人能提供一些循环终止条件吗?请帮忙……谢谢。