6

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

[[SimpleAudioEngine sharedEngine] isBackgroundMusicPlaying];

声音效果是否存在类似的东西?如果不是,我还能如何检测我是否已经在播放效果?

4

1 回答 1

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];

然后实现回调:

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

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

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

于 2011-09-16T14:29:24.740 回答