检测SimpleAudioEngine中当前是否正在播放声音效果

时间:2011-09-16 11:52:01

标签: objective-c cocos2d-iphone simpleaudioengine

我想检测[SimpleAudioEngine sharedEngine]当前是否正在播放任何效果。对于背景音乐,有一种方法可以为您提供背景音乐是​​否正在播放的信息:

[[SimpleAudioEngine sharedEngine] isBackgroundMusicPlaying];

音效有类似之处吗?如果不是,我怎么能检测到我是否已经在效果?

1 个答案:

答案 0 :(得分:3)

SimpleAudioEngine对于效果没有类似isBackgroundMusicPlaying的方法,但您可以存储名为isPlaying的BOOL并使用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的正确方法,因为我从this topic无耻地窃取了代码。也许你应该看一下CDAudioManager Class Reference

希望这有助于指出正确的方向。