如何:构建基本的音频处理图

使 XAudio2 能够播放音频数据的最低要求是音频处理图,它由单个主语音和单个源语音构成。

生成基本音频处理图

  1. 按照如何:初始化 XAudio2 中所述的步骤 初始化 XAudio2 引擎。

  2. 按照如何:在 XAudio2 中加载音频数据文件中所述的步骤,填充 WAVEFORMATEXXAUDIO2_BUFFER 结构。

  3. 使用 CreateSourceVoice 函数创建源语音。

    CreateSourceVoice 的 pSendList 参数指定 NULL 时,源语音的输出将转到步骤 1 中创建的主语音。

    IXAudio2SourceVoice* pSourceVoice;
    if( FAILED(hr = pXAudio2->CreateSourceVoice( &pSourceVoice, (WAVEFORMATEX*)&wfx,
                  0, XAUDIO2_DEFAULT_FREQ_RATIO, NULL, NULL, NULL ) ) ) return hr;
    

    完成此步骤后,会有一个简单的音频图,其中包含源语音、主语音和音频设备。 本操作方法主题中的剩余步骤演示如何启动音频数据流经图形。

    简单的音频图

    一个简单的音频图。

  4. 使用函数 SubmitSourceBufferXAUDIO2_BUFFER 提交到源语音。

    if( FAILED(hr = pSourceVoice->SubmitSourceBuffer( &buffer ) ) )
        return hr;
    
  5. 使用 Start 函数启动源语音。

    if ( FAILED(hr = pSourceVoice->Start( 0, XAUDIO2_COMMIT_NOW ) ) )
        return hr;
    

音频图

XAudio2 编程指南