在win7中使用fmod组件播放声音,在初始化组件时遇到了一些问题。代码如下。
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 | FModgetDriverInfo错误:传递给此函数的参数无效。我已经阅读了fmod的文档,但是参数传递给了这个函数,我找不到哪个参数是错误的。有人能帮我吗?或者给我一些建议?
发布于 2016-12-14 15:53:53
int iLength = 1024;
char szName[iLength] = {0};
FMOD_GUID sFmodGuid;
result = m_pFMOD->getDriverInfo(i, szName, szLength, &sFmodGuid,0,0,0);你遗漏了一些参数
https://stackoverflow.com/questions/35194830
复制相似问题