如何在函数中使用FMOD_SOUND?

时间:2012-05-16 02:54:15

标签: c fmod

我想通过在一个函数中使用FMOD来听声音。我想在之前说我可以听到所有其他声音,但它们不能用于函数。

这是代码的摘录:

header.h

void leson(FMOD_SOUND *caisse);

现在是代码:

#include <fmod.h>

FMOD_SYSTEM *system;
FMOD_SOUND *caisse;
FMOD_RESULT resultat8;
FMOD_System_Create(&system);
FMOD_System_Init(system, 1, FMOD_INIT_NORMAL, NULL);



resultat8 = FMOD_System_CreateSound(system, "sound/caisse.wav", FMOD_CREATESAMPLE, 0, &caisse);
if (resultat8 != FMOD_OK)
{
    fprintf(stderr, "error");
    exit(EXIT_FAILURE);
}

我想使用键V调用函数leson()

            switch(event.type)
            {

                    case SDL_KEYDOWN:
                    switch(event.key.keysym.sym)
                            {

                                case SDLK_v:
                                leson(&caisse);
                                break;

这里是leson()

void leson(FMOD_SOUND *caisse)

{
FMOD_System_PlaySound(system, FMOD_CHANNEL_FREE, caisse, 0, NULL);
fprintf(stderr, "test");

}

当我按V时,文件stderr包含线路测试,所以开关没问题,但为什么我听不到这个声音?

1 个答案:

答案 0 :(得分:0)

乍一看,声音看起来应该是在播放。要快速解决此错误,您需要修复错误检查。将resultat8设置为等于每个FMOD函数,就像使用FMOD_System_CreateSound一样,然后放入

if(resultat8 != FMOD_OK) 
{
  printf("%s", FMOD_ErrorString(resultat8));
}
每次FMOD函数调用后

。这将打印出现错误时返回的错误消息。