3

XAudio2で遊んでいますが、mmioOpen関数でいくつかの奇妙な問題が発生しました

何らかの理由でMMIOERR_FILENOTFOUND、ファイルがそこにあるにもかかわらず、失敗するようです。実際、ファイルは、ロードしている他のファイルと同じディレクトリにあり、正常に動作します...

テストに使用しているwavファイルはAugustSDKサンプルのファイルであり、名前をXAudio2BasicSoundサンプルにコピーすると正常に機能します...場合によっては、サウンドの名前を1.wavからそれらを開くようにします...

//"Counting.wav" does not work
Sounds.append(Audio.Sound(L"c:/test/xaudio2/Counting.wav"))
Sounds.append(Audio.Sound(L"Electro_1.wav"))
//"heli.wav" does not work
Sounds.append(Audio.Sound(L"c:/test/xaudio2/heli.wav"))
//"HipHoppy_1.wav" does not work
//"c:/test/xaudio2/HipHoppy_1.wav" does not work
Sounds.append(Audio.Sound(L"1.wav"))
Sounds.append(Audio.Sound(L"MusicMono.wav"))
Sounds.append(Audio.Sound(L"MusicSurround.wav"))
//"Techno_1.wav" does not work
//"c:/test/xaudio2/Techno_1.wav" does not work
Sounds.append(Audio.Sound(L"2.wav"))

SDKwavefile.hのwavクラスを使用しています。エラー番号を取得するための構造体を追加しましたmmioinfoが、機能しないキャスではMMIOERR_FILENOTFOUND、ファイルがすべて同じディレクトリにあるにもかかわらず、63行目を少し変更してエラーコードを取得できるようにしました。mmioOpen。文字列をメソッドAudio.Soundに渡す以外は、文字列に対して何もしません。wav.Open

MMIOINFO info;
ZeroMemory(&info, sizeof(MMIOINFO));
m_hmmio = mmioOpen( strFileName, &info, MMIO_ALLOCBUF | MMIO_READ );
if(!h_hmmio)
    std::wcout << L"Error Code: " << info.wErrorRet << L"\n";

これらの波のいくつかを開くことができない理由は本当にわかりません...

4

1 に答える 1

0

変化する

m_hmmio = mmioOpen( strFileName, &info, MMIO_ALLOCBUF | MMIO_READ )

m_hmmio = mmioOpen( strFileName, NULL, MMIO_ALLOCBUF | MMIO_READ )
于 2009-01-17T11:11:20.927 に答える