读取方法返回两倍实际存在的样本数

时间:2015-03-26 10:04:50

标签: c# audio naudio sampling

我有以下代码将音频文件的样本读入字节数组。

int signal_read = signal.Read(signal_sample, 0, signal_length);
MessageBox.Show(signal_read + "");

其中signalWaveFileReader类的对象。

MessageBox.Show始终显示从软件 Audacity 获得的实际样本数的两倍。

read方法是否不返回从音频中读取的样本数?

1 个答案:

答案 0 :(得分:5)

不,它返回读取的字节数。

因此,对于16位PCM wav,它将为您提供两倍的样本量。如果它是一个立体声16位,你会得到四倍。

您可能希望使用填充float[][]数组的重载,而不是读取字节。例如,对于单声道音频:

var array = new float[][] { new float[sampleCount] };

var actualSamples = signal.Read(array, sampleCount);