0

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

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

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

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

4

1 回答 1

2

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

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

谷歌随机点击“xaudio2 fft”产生了这个代码示例。不知道它有多好,但可以用来玩弄这片土地。你会在这个游戏开发问题中找到更多关于它的信息。

于 2015-03-17T15:28:45.553 回答