有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

数组从数组中获取int值。Java中的wav文件

我似乎走到了死胡同。我尝试显示每个采样32位的第一个int值,2个通道。具有以下代码的wav文件:

public static void main(String[] args) {
    File inFile = new File("C:/.../1.wav");
    FileInputStream fstream = null;

    try {
        fstream = new FileInputStream(inFile);
    } catch (FileNotFoundException e1) {
        e1.printStackTrace();
    }

    BufferedInputStream in = new BufferedInputStream(fstream);
    byte[] bytes = null;

    try {
        bytes = IOUtils.toByteArray(in);
    } catch (IOException e) {
        e.printStackTrace();
    }


    ByteBuffer wrapped = ByteBuffer.wrap(bytes);
    int num = wrapped.getInt();
    System.out.println(num);

}

但我不确定显示的数字是什么意思。我得到“1380533830”,首先,如果我理解正确,int值不是从0到2^32-1,而是从-2^31到2^31-1

如果是这种情况,它应该是来自第一个通道的第一个int,但是当我在matlab中执行audioread时,我得到了一个完全不同的值:“-1376256”。我试图看看“1380533830”是否是我的audioread中的某个值,但事实并非如此,所以我不知道我做了什么


共 (0) 个答案