所有 我已经使用fmod组件在win7中播放声音,我在初始化组件时遇到了一些问题。代码如下。
FMOD::Memory_Initialize(0, 0, FMOD_AllocCallback, FMOD_ReallocCallback, FMOD_FreeCallback);
result = FMOD::System_Create(&m_pFMOD);
if (result != FMOD_OK)
{
//fprintf(stderr, ERR_NOSOUND, result, FMOD_ErrorString(result));
DREAMLAND_RUNINFO(L"[FMod] System_Create error:%s", Utf82WideChar(FMOD_ErrorString(result)).c_str());
m_pFMOD = NULL;
return false;
}
result = m_pFMOD->getVersion(&version);
if (result != FMOD_OK)
{
RUNINFO(L"[FMod] getVersion error:%s", Utf82WideChar(FMOD_ErrorString(result)).c_str());
m_pFMOD->release();
m_pFMOD = NULL;
return false;
}
if (version < FMOD_VERSION)
{
RUNINFO(L"[FMod]version < FMOD_VERSION error:%s", Utf82WideChar(FMOD_ErrorString(result)).c_str());
m_pFMOD->release();
m_pFMOD = NULL;
return false;
}
const int iLength = 1024;
char szName[iLength] = {0};
FMOD_GUID sFmodGuid;
result = m_pFMOD->getDriverInfo(0, szName, iLength, &sFmodGuid);
if (result != FMOD_OK)
{
RUNINFO(L"[FMod]getDriverInfo error:%s", Utf82WideChar(FMOD_ErrorString(result)).c_str());
m_pFMOD->release();
m_pFMOD = NULL;
return false;
}
int iMin = 0, iMax = 0;
result = m_pFMOD->getDriverCaps(0, &caps, &iMin, &iMax, &speakermode);
if (result != FMOD_OK)
{
//fprintf(stderr, ERR_NOSOUND, result, FMOD_ErrorString(result));
RUNINFO(L"[FMod] getDriverCaps error:%s", Utf82WideChar(FMOD_ErrorString(result)).c_str());
m_pFMOD->release();
m_pFMOD = NULL;
return false;
}
函数getdriverinfo失败,错误字符串为14:16:00:729 | [FMod] getDriverInfo错误:将无效参数传递给此函数。我已经阅读了fmod的文档,但是参数传递给了这个函数,我找不到哪个参数是错误的。谁能帮我?或者给我一些提示?
答案 0 :(得分:0)
int iLength = 1024;
char szName[iLength] = {0};
FMOD_GUID sFmodGuid;
result = m_pFMOD->getDriverInfo(i, szName, szLength, &sFmodGuid,0,0,0);
你错过了一些参数