Как передать имя звука в Fmod на iPhone - PullRequest
2 голосов
/ 27 июня 2011

Есть ли способ заставить 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);

1 Ответ

1 голос
/ 28 июня 2011

Невозможно получить субстанцию ​​ФСБ по имени, вы всегда должны использовать индекс.Однако вам доступно несколько вариантов:

  1. Вы можете создать список имен, а затем найти имя, чтобы получить индекс (это, вероятно, будет быстрее, чем сканирование каждого подзвучка)..

  2. Вы можете использовать заголовок включения, FSBankLib может создать файл заголовка, сгенерированный из имен, которые входят в FSB, которые вы можете использовать в качестве макросов для индекса подзвука.

  3. Вы можете использовать FMOD Designer, а вместо Sounds использовать Events, их можно искать по имени.

...