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

geb*_*bel 6 objective-c cocos2d-iphone simpleaudioengine

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

[[SimpleAudioEngine sharedEngine] isBackgroundMusicPlaying];
Run Code Online (Sandbox Code Playgroud)

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

You*_*sef 3

SimpleAudioEngine没有像isBackgroundMusicPlaying效果这样的方法,但您可以存储一个BOOL名为 isPlaying 并使用CDSoundSource

CDSoundSource* currentSound = [[CDAudioManager sharedManager] audioSourceForChannel:kASC_Right];
[currentSound load:audioFile];
currentSound.delegate = self;
currentSound.backgroundMusic = NO;
isPlaying = YES;
[currentSound play];
Run Code Online (Sandbox Code Playgroud)

然后实现回调:

- (void) cdAudioSourceDidFinishPlaying:(CDLongAudioSource *) audioSource {
    isPlaying = NO;
}
Run Code Online (Sandbox Code Playgroud)

我不知道这是否是初始化的正确方法,因为我无耻地从这个主题CDSoundSource中窃取了代码。也许你应该看看CDAudioManager 类参考

希望这有助于为您指明正确的方向。