我一直在研究 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";
我真的看不出为什么它无法打开其中一些波...
最佳答案
改变
m_hmmio = mmioOpen( strFileName, &info, MMIO_ALLOCBUF | MMIO_READ )
到
m_hmmio = mmioOpen( strFileName, NULL, MMIO_ALLOCBUF | MMIO_READ )
关于c++ - mmioOpen 出现奇怪的文件未找到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/365579/