Странный файл не найден с mmioOpen - PullRequest
3 голосов
/ 13 декабря 2008

Я играл с XAudio2, но столкнулся с некоторыми странными проблемами с функцией mmioOpen

По какой-то причине он, похоже, не работает с MMIOERR_FILENOTFOUND, даже если файл находится там, на самом деле файл находится в том же каталоге, что и другие файлы, которые я загружаю, и которые работают нормально ...

Wav-файлы, которые я использую для тестирования, - это только те, что есть в образцах August SDK, которые отлично работают, если я копирую имена в образец XAudio2BasicSound ... В некоторых случаях мне приходилось переименовывать звуки, например .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"))

Я просто использую класс wav из SDKwavefile.h. Я добавил структуру 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";

Я действительно не вижу причин, почему он не может открыть некоторые из этих волн ...

1 Ответ

0 голосов
/ 17 января 2009

Изменение

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

до

m_hmmio = mmioOpen( strFileName, NULL, MMIO_ALLOCBUF | MMIO_READ )
...