0

Direct3D 9 と XAudio 2.7 に基づく C++ ゲーム エンジンを開発しています。そして、テスト ゲームを終了するたびに同じ問題が発生します。XAudio がクラッシュします。初期化の呼び出しを削除すると、ゲームは問題なく終了するため、問題を引き起こしているのはこの特定のコンポーネントであると確信しています。

例外ボックス

理由はわかりませんが、すべての基本コードをセットアップしました (初期化、音声、オーディオ コンポーネントのマスタリング、すべてのバッファーのクリア、->Release(); でのシャットダウン)、XAudio 3D の有無にかかわらず試してみました...

すでにそれを経験したことがある場合は、大歓迎です。ありがとう。

Windows 10 Pro 64 ビットを実行しています

コード :

AudioEngineXA2::AudioEngineXA2()
{
    m_xaudio2 = 0;
    m_xa2MasteringVoice = 0;

    m_x3d = 0;
}

void AudioEngineXA2::initialize()
{
    if ( XAudio2Create( &m_xaudio2, 0 ) < 0 || m_xaudio2->CreateMasteringVoice( &m_xa2MasteringVoice ) < 0 )
    {
        cout << "XAudio2 initialization failed!" << endl;
        return;
    }

    //X3DAudioInitialize( SPEAKER_STEREO, X3DAUDIO_SPEED_OF_SOUND, (unsigned char*) m_x3d );

    // Uncommenting this part doesn't help either
    /*XAUDIO2_DEVICE_DETAILS* devdet = 0;
    m_xaudio2->GetDeviceDetails(0, devdet);

    float* matrix = new float[devdet->OutputFormat.Format.nChannels];
    DSPSettings.SrcChannelCount = 1;
    DSPSettings.DstChannelCount = devdet->OutputFormat.Format.nChannels;
    DSPSettings.pMatrixCoefficients = matrix;*/
}

void AudioEngineXA2::cleanup()
{
    m_xa2MasteringVoice->DestroyVoice();

    m_xaudio2->StopEngine();
    m_xaudio2->Release();
    //if ( m_x3d ) { delete[] m_x3d; m_x3d = 0; }
}
4

2 に答える 2