0

それぞれがさまざまなサウンドを個別に再生する単純な FMOD アクションのセットがあります。問題は、すべての音を止めるボタンがあることです。再生されていないサウンドを停止しようとすると、FMOD がプログラムをクラッシュさせます。理にかなっています。しかし、単純な if ステートメントを呼び出して、再生中の「if」と「if」のみを見つけて停止する方法が必要であると判断しました。

- (IBAction)myButton:(id)sender {


    if "FMOD CHANNEL IS PLAYING" {

        result = fmodChannel->stop();

    }

}

どんな助けでも大歓迎です。

4

1 に答える 1

2

stop再生していないチャンネルを呼び出した場合に FMOD がクラッシュするのは「理にかなっている」とは言えません。失敗時にエラーコードを返すことが文書化されています。fmodChannelを呼び出したときにまだ有効なポインターですかstop?

isPlayingとにかく、次の方法を試すことができます。

bool isPlaying;
if (fmodChannel->isPlaying(&isPlaying) == FMOD_OK && isPlaying) {
    fmodChannel->stop();
}
于 2012-09-11T02:48:33.107 に答える