FMOD API - 无法从内存加载声音

时间:2013-08-09 20:16:54

标签: visual-c++ fmod

int main(int arg, char *args[])
{
FMOD::System *System;
FMOD::Sound *Sound;
FMOD::Channel *Channel = 0;
FMOD_CREATESOUNDEXINFO exinfo;
FMOD_RESULT result;
void *Buffer = 0;
int Key;
ZIPENTRY ze;
HZIP hz = OpenZip("C:\\Users\\Lukas\\Desktop\\Music.pak", "");
FindZipItem(hz, "Recording 1.mp3", true, NULL, &ze);
Buffer = malloc(ze.unc_size);
UnzipItem(hz, ze.index, Buffer, ze.unc_size);
CloseZip(hz);

ZeroMemory(&exinfo, sizeof(FMOD_CREATESOUNDEXINFO));
exinfo.cbsize = sizeof(FMOD_CREATESOUNDEXINFO);
exinfo.length = ze.unc_size;
result = FMOD::System_Create(&System);
result = System->init(32, FMOD_INIT_NORMAL, 0);
result = System->createSound((const char*)Buffer, FMOD_HARDWARE | FMOD_OPENMEMORY, &exinfo, &Sound);
result = System->playSound(FMOD_CHANNEL_FREE, Sound, false, &Channel);
while(TRUE)
{
    if(_kbhit())
    {
        Key = _getch();
        if(Key == 27)break;
    }
}
Sound->release();
System->close();
System->release();
return 0;
}

声音正确加载到内存中。 但我有System-> createSound()函数的问题。它会抛出FMOD_INVALID_PARRAM,但一切都应该没问题。 (与FMOD示例相比) 谢谢你的回答。

1 个答案:

答案 0 :(得分:2)

一切都还可以,我忘了复制DLL文件^^