我一直在玩 XAudio2 但遇到了一些奇怪的mmioOpen
问题
由于某种原因,它似乎失败了MMIOERR_FILENOTFOUND
,即使文件在那里,实际上该文件与我正在加载的其他文件位于同一目录中,这些文件工作正常......
我用来测试的 wav 文件只是 August SDK 示例中的文件,如果我将名称复制到 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";
我真的看不出它为什么无法打开其中一些波浪的原因......