我想读取音频数据,但有一个未处理的异常



我的代码如下:

private void btnStart_Click(object sender, EventArgs e)
    {
        txtAnalisa.Text = "";
        string filename = txtSampel.Text;
        reader = new WaveFileReader(filename);
        int length = 1000;
        byte[] buffer = new byte[length];
        reader.Read(buffer, 0, length);
        sample = new double[reader.Length];
        for (int n = 0; n < length; n++)
        {
            sample[n] = BitConverter.ToInt32(buffer,n);
            txtAnalisa.Text += n + ". Sampel = " + sample[n] + Environment.NewLine;
        }       
    }

但是当我运行时,出现了一个未处理的参数异常:

mscorlib.dll 中发生"System.ArgumentException"类型的未处理异常

附加信息:目标数组不够长,无法复制集合中的所有项。检查数组索引和长度。

我该怎么办?

您有一条清晰的错误消息:

目标阵列不够长

在您的代码中,只有一个数组具有硬编码大小,那就是buffer。阵列不够长。正如评论中所建议的,length变量应该更大,以增加buffer容量。

相关内容

最新更新