我已经使用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在给定时间获取频率值?
答案 0 :(得分:2)
这个问题没有多大意义,.wav文件包含很多频率。它们的融合使它听起来像是听起来像是音乐,而不仅仅是人工产生的音调。一种不断变化的混合物。
需要信号处理步骤将.wav文件中的样本从时域转换到频域。通常称为频谱分析,快速傅里叶变换(FFT)是标准技术。
谷歌随机点击“xaudio2 fft”产生了this code sample。不知道它有多好,但可以玩一些东西来获得土地。您可以在this gamedev question找到更多相关信息。