Определите, воспроизводится ли звуковой эффект в SimpleAudioEngine - PullRequest
6 голосов
/ 16 сентября 2011

Я хочу определить, воспроизводит ли [SimpleAudioEngine sharedEngine] какой-либо эффект.Для фоновой музыки есть метод, который дает вам информацию о том, играет ли фоновая музыка:

[[SimpleAudioEngine sharedEngine] isBackgroundMusicPlaying];

Существует ли нечто подобное для звуковых эффектов?Если нет, то как еще я могу определить, играю ли я уже эффект?

1 Ответ

3 голосов
/ 16 сентября 2011

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 Class Reference

Надеюсь, это поможет вам указать правильное направление.

...