2013-11-03 18 views
6

voglio usare SpriteKit per riprodurre l'audio, la questione è che io uso la funzione:Come per mettere in pausa il suono quando l'uso SpriteKit

[SKAction playSoundFileNamed:@"sound.wav" waitForCompletion:NO]; 

Ma quando voglio mettere in pausa il gioco, il suono è ancora giocare .

Come fermare il suono quando skview.pause è impostato su YES, e di riprendere il suono quando skview.pause è impostato su NO?

+0

Se non sbaglio si dovrebbe utilizzare il metodo playSoundFileNamed per la riproduzione di effetti sonori ... qualcosa di breve 1 o 2 secondi, come l'esplosione del suono – lionserdar

+0

E inoltre penso che sarebbe meglio se usi AVAudioPlayer per musica di sottofondo, controlla questo tutorial su raywenderlich.com (http://www.raywenderlich.com/49625/sprite-kit-tutorial-space-shooter) vedi la sezione suono – lionserdar

+0

potresti anche usare un motore audio come ObjectAL – LearnCocos2D

risposta

9

È passato un po 'di tempo, ma qui è la base di ciò che è possibile fare usando AVAudio. Userò musica di sottofondo in questo esempio ma può essere fatto in qualsiasi modo. Puoi inserire questo in una sottoclasse di SKSpriteNode per avere un suono personalizzato che può essere messo in pausa da solo o da altri.

//Add this to your imports: 
#import <AVFoundation/AVFoundation.h>; 

//Add the following variable in your interface. 
AVAudioPlayer *player; 

// Put this in an init or something of the like. 
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"musicFileSound" ofType:@"wav"]]; 
_player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil]; 

Poi per iniziare l'uso [_player play];

L'uso [_player pause] per mettere in pausa.

E [_player stop]

Here is the documentation for it, there are some cool things you can do with it.

Problemi correlati