一次回放播放完 N 个字节时的事件

Event when N bytes have been played in a playback

我想播放一个音频文件并比较刚刚播放的大小为N的缓冲区是否与麦克风中刚刚捕获的大小为N的缓冲区具有相同的主频率。查看 SpectrumVisualization 示例似乎我必须实现自己的 ISampleProvider 才能在从我的文件播放 N 个字节时触发事件。那是对的吗?我可以使用任何现有的提供商来做到这一点吗?

谢谢

是的,这是通用技术。在演示中,它在将它们传递给 FFT 之前对 1024 个样本进行批处理。如果您的算法可以处理任意批量大小,那么将每次调用 Read 时收到的音频传递给它可能会更容易,这将与播放设备使用的缓冲区大小保持一致。