检测SimpleAudioEngine中是否正在播放音效

6
我希望检测出 [SimpleAudioEngine sharedEngine] 是否正在播放任何音效。对于背景音乐,有一种方法可以告诉您背景音乐是否正在播放:
[[SimpleAudioEngine sharedEngine] isBackgroundMusicPlaying];

是否有类似的东西适用于声音效果?如果没有,那么我如何检测是否正在播放某个效果?
1个回答

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的方式,因为我从此主题中无耻地借鉴了代码。也许您应该查看CDAudioManager类参考文档

希望这能帮助您找到正确的方向。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接