4

32チャンネルでFMODを初期化し、次のコードで短いサンプル(1秒)を再生しています。

result = system->init(32, FMOD_INIT_NORMAL , NULL);
// here I load the sounds //
result = system->playSound(FMOD_CHANNEL_FREE, grid[_sound], false, &channel);

意図したとおりに重なり合う音ですが、32サンプル(同時にではない)を再生すると、一度に1つの音しか再生できないことに気づきました。FMOD_CHANNEL_FREEはインクリメンタルカウンターのように動作し、32に達するとそこに留まり、新しいサウンドを再生するために再生している間、最後のサウンドを停止します。

再生が停止したときにサウンドを削除する必要がありますか?どのように?基本的なものが足りないような気がします

ありがとう!

マーク

4

3 に答える 3

4

私も同じ問題を抱えていました。system->update()すべてのフレームを呼び出すのを忘れていたことが判明しました。それを入れたら、うまくいきました。

于 2011-11-12T08:00:52.907 に答える
0

チャンネルがまだ再生されているようです(ただしサイレント)。Channel:: isPlayingをチェックして、チャンネルがまだ再生されているかどうかを確認できますか?

それでも問題が解決しない場合は、コードをもう少し投稿してください。

于 2011-06-03T07:08:02.113 に答える
0

複数の最大チャネルで fmod システムを初期化していることを確認できますか? fmod システムを初期化するには、次のコードを使用してみてください。

    System->init(32, FMOD_INIT_NORMAL, 0);

または、電話するのを忘れた

    System->Update();
于 2013-12-02T18:10:02.717 に答える