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

hum*_*rch 2 c# audio naudio sampling

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

int signal_read = signal.Read(signal_sample, 0, signal_length);
MessageBox.Show(signal_read + "");
Run Code Online (Sandbox Code Playgroud)

哪个signalWaveFileReader类的对象.

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

难道read方法无法返回读取的音频样本的数量?

Lua*_*aan 5

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

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

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

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

var actualSamples = signal.Read(array, sampleCount);
Run Code Online (Sandbox Code Playgroud)