6

[SimpleAudioEngine sharedEngine] が現在何らかのエフェクトを再生しているかどうかを検出したいと考えています。バックグラウンド ミュージックの場合、バックグラウンド ミュージックが再生されているかどうかを示すメソッドがあります。

[[SimpleAudioEngine sharedEngine] isBackgroundMusicPlaying];

効果音に似たようなものはありますか?そうでない場合、すでにエフェクトをプレイしているかどうかを他にどのように検出できますか?

4

1 に答える 1

3

SimpleAudioEngineisBackgroundMusicPlayingエフェクトのようなメソッドはありませんが、BOOL呼び出された isPlaying を保存して使用できますCDSoundSource

CDSoundSource* currentSound = [[CDAudioManager sharedManager] audioSourceForChannel:kASC_Right];
[currentSound load:audioFile];
currentSound.delegate = self;
currentSound.backgroundMusic = NO;
isPlaying = YES;
[currentSound play];

次に、コールバックを実装します。

- (void) cdAudioSourceDidFinishPlaying:(CDLongAudioSource *) audioSource {
    isPlaying = NO;
}

このトピックCDSoundSourceから恥知らずにコードを盗んだので、それがを初期化する正しい方法であるかどうかは正確にはわかりません。CDAudioManager Class Referenceをご覧ください。

これがあなたを正しい方向に向けるのに役立つことを願っています.

于 2011-09-16T14:29:24.740 に答える