0

我想通过在函数中使用 FMOD 来收听声音。我之前想说的是,我可以听到所有其他声音,但它们没有与函数一起使用。

这是代码的摘录:

头文件.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 包含线路测试,所以开关没问题,但为什么我听不到这个声音?

4

1 回答 1

0

乍一看,声音看起来应该正在播放。要快速找出此错误,您需要修复错误检查。设置 resultat8 等于每个 FMOD 函数,就像你对 FMOD_System_CreateSound 所做的那样,然后把

if(resultat8 != FMOD_OK) 
{
  printf("%s", FMOD_ErrorString(resultat8));
}

在每次 FMOD 函数调用之后。如果发生错误,这将打印出返回的错误消息。

于 2012-05-30T19:49:47.133 回答