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 に答える