2010-10-04 4 views
0

J'ai un problème lorsque j'ai du son dans Menu> Niveau un. Cependant, lorsque je quitte le niveau un et que je retourne au menu, le son ne s'arrête pas!Problème de son sortant

De quel code ai-je besoin pour terminer le son?

Ce code J'utilise:

- (IBAction) playsound { 
NSString *path = [[NSBundle mainBundle] pathForResource:@"imsound" ofType:@"wav"];  
AVAudioPlayer* myAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];  
myAudio.delegate = self;  
myAudio.volume = 1.0;  
myAudio.numberOfLoops = -1;  
[myAudio play]; 
} 

Répondre

1

Comme l'indique la documentation, -1 va l'amener à jouer à plusieurs reprises jusqu'à ce que vous envoyez un -stop. Donc le problème devient "quand devrais-je lui dire d'arrêter". C'est probablement une bonne idée de le faire (si c'est en train de jouer) when you go back. Parce que vous ne possédez pas de référence au lecteur (vous le fuyez dès que vous quittez la méthode -playSound: vous n'avez aucun moyen de lui dire de se taire. Vous devriez en faire une variable d'instance Vous êtes en train d'appuyer sur play puis de lancer le lecteur à l'arrière du camion de quelqu'un, puis de le récupérer pour pouvoir l'éteindre. ;-)

Des techniques appropriées de gestion de la mémoire et l'utilisation de variables d'instance sont les principales causes de vos problèmes actuels.