2

有没有办法让 fmod 根据声音名称播放声音?我可以使用以下代码循环出声音名称:

    for (int subsoundindex = 0; subsoundindex < numsubsounds; subsoundindex++)
    {
            FMOD::Sound *subsound  = NULL;
            char         name[256] = {0};

            result = fsb->getSubSound(subsoundindex, &subsound);
            ERRCHECK(result);

            result = subsound->getName(name, 256);
            ERRCHECK(result);

        NSLog(@"SOUND NAME %s.", name);
    }

但是要播放它,我想知道在哪里注入声音名称,如下所示:

    result = fsb->getSubSound(row, &subsound);

    ERRCHECK(result);        

    result = system->playSound(FMOD_CHANNEL_FREE, subsound, false, &channel);
    ERRCHECK(result);
4

1 回答 1

1

无法通过名称获取 FSB 子声音,您必须始终使用索引。但是,有几个选项可供您使用。

  1. 您可以创建一个名称列表,然后查找名称以获取索引(这可能比扫描每个子声音更快。

  2. 您可以使用包含头文件,FSBankLib 可以生成从进入 FSB 的名称生成的头文件,您可以将其用作子声音索引的宏。

  3. 您可以使用 FMOD Designer,而不是声音,使用事件,这些可以通过名称查找。

于 2011-06-27T23:41:51.910 回答