2011-09-16 29 views
6

Quiero detectar si [SimpleAudioEngine sharedEngine] está actualmente reproduciendo algún efecto. Para música de fondo hay un método que le brinda información sobre si se está reproduciendo música de fondo:Detecta si se está reproduciendo un efecto de sonido en SimpleAudioEngine

[[SimpleAudioEngine sharedEngine] isBackgroundMusicPlaying]; 

¿Existe algo similar para los efectos de sonido? Si no, ¿cómo puedo saber si ya estoy reproduciendo un efecto?

Respuesta

3

SimpleAudioEngine No tiene un método como isBackgroundMusicPlaying de efectos, pero se puede almacenar una llamada BOOL isPlaying y utilizar CDSoundSource

CDSoundSource* currentSound = [[CDAudioManager sharedManager] audioSourceForChannel:kASC_Right]; 
[currentSound load:audioFile]; 
currentSound.delegate = self; 
currentSound.backgroundMusic = NO; 
isPlaying = YES; 
[currentSound play]; 

A continuación, aplicar la devolución de llamada:

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

no lo hago Sé exactamente si esa es la forma correcta de iniciar el CDSoundSource ya que he robado descaradamente el código de this topic. Tal vez deberías echarle un vistazo al CDAudioManager Class Reference

Espero que esto ayude a señalarte en la dirección correcta.

Cuestiones relacionadas