XAudio2学习之IXAudio2VoiceCallback回调

Posted GreenArrowMan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XAudio2学习之IXAudio2VoiceCallback回调相关的知识,希望对你有一定的参考价值。

使用IXAudio2VoiceCallback回调的好处是,在音频数据播放完的时候,可以通知外部程序进行其他操作。

使用IXAudio2VoiceCallback需要继承此接口,然后重新实现,因为内部所有函数都是纯虚函数。所有函数中使用比较多的是OnStreamEnd函数,当音频数据播放完成的时候,OnStreamEnd会触发一个事件。

继承实现IXAudio2VoiceCallback接口:

class VoiceCallback : public IXAudio2VoiceCallback
{
public:
    HANDLE hBufferEndEvent;
    VoiceCallback(): hBufferEndEvent( CreateEvent( NULL, FALSE, FALSE, NULL ) ){}
    ~VoiceCallback(){ CloseHandle( hBufferEndEvent ); }

    //Called when the voice has just finished playing a contiguous audio stream.
    void OnStreamEnd() { SetEvent( hBufferEndEvent ); }

    //Unused methods are stubs
    void OnVoiceProcessingPassEnd() { 

以上是关于XAudio2学习之IXAudio2VoiceCallback回调的主要内容,如果未能解决你的问题,请参考以下文章

XAudio2学习之IXAudio2VoiceCallback回调

XAudio2播放PCM

Mingw,XAudio2和GetProcAddress失败

XAudio2 是不是有最大声音数?

XAudio2音量和音调控制

在 xaudio2 中集成 3D 音频