2010-07-10 6 views
0

J'ai une classe dans laquelle j'ai un lecteur audio. En classe B, j'ai un switch, d'où je veux prendre le contrôle du jeu et arrêter la musique de fond. Je ne suis pas en mesure d'arrêter et de jouer de la musique via le commutateur. ceci est mon lecteur audio à viewDidLoad de classe AProblème Démarrer et arrêter AVAudioPlayer

NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/bgmusic.wav", [[NSBundle mainBundle] resourcePath]]]; 
NSError *error; 
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error]; 
audioPlayer.numberOfLoops = -1; 
[audioPlayer play]; 
if (audioPlayer == nil) NSLog([error description]); 
else [audioPlayer play]; 

c'est swtich de classe B

-(IBAction) musicValueChanged:(id)sender{  
if (musicSwitch.on) { 
    isStopped = FALSE; 
    firstViewController.player.currentTime = 0; 
    [firstViewController.audioPlayer play]; 
}else { 
    [firstViewController.audioPlayer volume:0]; 
} 
} 

Comment puis-je faire?

+0

Où êtes-vous coincé, qu'avez-vous essayé? Nous ne sommes pas psychiques donc vous devez nous dire à quoi ressemble votre design. –

+0

c'est mon lecteur audio à viewdidload de la classe A NSURL * url = [NSURL fileURLWithPath: [NSString stringWithFormat: @ "% @/bgmusic.wav", [[NSBundle mainBundle] resourcePath]]]; \t \t erreur NSError *; \t audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL: erreur d'url: & erreur]; \t audioPlayer.numberOfLoops = -1; \t \t [lecture du lecteur audio]; \t if (audioPlayer == nul) \t \t NSLog ([description de l'erreur]); \t d'autre \t \t [lecture audioPlayer]; – iscavengers

+0

c'est swtich de classe B - (IBAction) musicValueChanged: (id) sender {\t \t si (musicSwitch.on) { \t \t isStopped = FAUX; \t \t firstViewController.player.currentTime = 0; \t \t [firstViewController.audioPlayer play]; \t} else {[firstViewController.audioPlayer volume: 0]; }} – iscavengers

Répondre

1

Tant que la méthode est appelée et musicSwitch.on a une valeur, cela devrait fonctionner:

- (IBAction) musicValueChanged: (id) sender {

if (musicSwitch.on) { 
    isStopped = FALSE; 
    firstViewController.player.currentTime = 0; 
    [firstViewController.audioPlayer play]; 
}else { 
    [firstViewController.audioPlayer stop]; 
} 
} 

Voir les AVAudioPlayer docs.

Questions connexes