如何使用XAudio2在给定时间获取频率值?

时间:2015-03-15 13:00:00

标签: c++ windows winapi xaudio2

我已经使用XAudio2(Windows 8.1)将.wav音频加载到缓冲区并播放它我只需要使用:

//start consuming audio in the source voice
/* IXAudio2SourceVoice* */ g_source->Start();

//play the sound
g_source->SubmitSourceBuffer(buffer.xaBuffer());

我想知道,如何使用XAudio2在给定时间获取频率值?

1 个答案:

答案 0 :(得分:2)

这个问题没有多大意义,.wav文件包含很多频率。它们的融合使它听起来像是听起来像是音乐,而不仅仅是人工产生的音调。一种不断变化的混合物。

需要信号处理步骤将.wav文件中的样本从时域转换到频域。通常称为频谱分析,快速傅里叶变换(FFT)是标准技术。

谷歌随机点击“xaudio2 fft”产生了this code sample。不知道它有多好,但可以玩一些东西来获得土地。您可以在this gamedev question找到更多相关信息。