1

Cricket Audio Sound Engine (ios & android)を使用 して、機関銃タイプの効果音を設定するにはどうすればよいですか。1 秒間に多くのサウンド インスタンスを再生できる必要があります。効果音は互いに重ねる必要があります。

私の解決策は、新しいCkSoundインスタンスを作成して忘れることです。複雑なサウンド トラッキング方法を使用せずに、サウンドを簡単に破壊する方法はないと思います。プレイ セッション中に何千もの CkSound を作成しているため、メモリの問題が発生しますか? ガベージ コレクションのために個々のサウンドを追跡する必要はありません。

// Example sound effect call
void SoundManager::playEffect(const char* name){
    // I make a sound , play it , and forget about it
    sound = CkSound::newBankSound(g_bank, name);
    sound->play();
}
4

1 に答える 1

2

インスタンスを作成して破棄しないことはお勧めしません。これはメモリ リークであり、時間の経過とともにアプリが使用するメモリが増えるためです。

このようなものを試すことができます…

初期化するには:

const int k_maxSounds = 5; // maximum number of sound instances to be playing at once
CkSound* g_sounds[k_maxSounds];
for (int i = 0; i < k_maxSounds; ++i)
{
   g_sounds[i] = CkSound::newBankSound(g_bank, name);
}

別のサウンド インスタンスを再生するには、最初に使用可能なインスタンスを見つけて再生します。

for (int i = 0; i < k_maxSounds; ++i)
{
   if (!g_sounds[i]->isPlaying())
   {
      g_sounds[i]->play();
      break;
   }
}

-steve -クリケット オーディオ クリエーターがメールで回答

于 2013-10-26T19:22:37.240 に答える