我想检测[SimpleAudioEngine sharedEngine]当前是否正在播放任何效果。对于背景音乐,有一种方法可以为您提供背景音乐是否正在播放的信息:
[[SimpleAudioEngine sharedEngine] isBackgroundMusicPlaying];
音效有类似之处吗?如果不是,我怎么能检测到我是否已经在效果?
答案 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
希望这有助于指出正确的方向。