我有以下代码将音频文件的样本读入字节数组。
int signal_read = signal.Read(signal_sample, 0, signal_length);
MessageBox.Show(signal_read + "");
其中signal
是WaveFileReader
类的对象。
MessageBox.Show始终显示从软件 Audacity 获得的实际样本数的两倍。
read
方法是否不返回从音频中读取的样本数?
答案 0 :(得分:5)
不,它返回读取的字节数。
因此,对于16位PCM wav,它将为您提供两倍的样本量。如果它是一个立体声16位,你会得到四倍。
您可能希望使用填充float[][]
数组的重载,而不是读取字节。例如,对于单声道音频:
var array = new float[][] { new float[sampleCount] };
var actualSamples = signal.Read(array, sampleCount);