Soucis avec le player
Bonjour,
Tout d'abord félicitation pour le changement de design.
Bon, j'ai un petit problème avec AVAudioPlayer. Dans mon appli il y a une alarme et donc l'utilisateur peut choisir la mélodie qu'il souhaite.
Ce qui débloque:
Quand je lance l'appli, je laisse la mélodie chargée en défault, je l'écoute, je change de mélodie, j'écoute. OK
Par contre si dés le départ je choisi de changer la mélodie, le player ne lit pas
setAlarmMelody: n'est executée qu'une fois
changeAlarmMelody: est lancée à chaque fois qu'on touche le bouton pour changer de mélodie
listenAlarmMelody: est appelée quand l'alarme sonne ou quand on souhaite écouter une mélodie.
Vraiment je vois pas ce qui ne va pas.
Merci
Tout d'abord félicitation pour le changement de design.
Bon, j'ai un petit problème avec AVAudioPlayer. Dans mon appli il y a une alarme et donc l'utilisateur peut choisir la mélodie qu'il souhaite.
Ce qui débloque:
Quand je lance l'appli, je laisse la mélodie chargée en défault, je l'écoute, je change de mélodie, j'écoute. OK
Par contre si dés le départ je choisi de changer la mélodie, le player ne lit pas
<br />-(void)setAlarmMelody {<br />//....code pour filePath, bundle, fileURL retiré pour gagner de la place dans le post<br /><br />AVAudioPlayer *newPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL: [sonArray objectAtIndex:posInArray] error: nil];<br /> [newPlayer prepareToPlay];<br /> [newPlayer setDelegate: self];<br /> self.player = newPlayer;<br /> [newPlayer release];<br /> <br /> [fileURL1 release];<br /> [fileURL2 release];<br /> [fileURL3 release];<br /> [fileURL4 release];<br />}<br /><br />- (IBAction)changeAlarmMelody {<br /> if([player isPlaying]){<br /> NSLog(@"play -> stop");<br /> [player stop];<br /> player.currentTime = 0;<br /> }else{<br /> [player stop];<br /> player.currentTime = 0;<br /> NSLog(@"not playing");<br /> if(posInArray < sonArray.count - 1){<br /> posInArray += 1;<br /> titreAlarmMelody.text = [titreArray objectAtIndex:posInArray];<br /> NSLog(@"titre %@",titreAlarmMelody.text);<br /> NSLog(@"pos %i",posInArray);<br /> [self chargePlayer:posInArray];<br /> }else{<br /> posInArray = 0;<br /> NSLog(@"pos %i",posInArray);<br /> titreAlarmMelody.text = [titreArray objectAtIndex:posInArray];<br /> NSLog(@"titre %@",titreAlarmMelody.text);<br /> [self chargePlayer:posInArray];<br /> } <br /> }<br />}<br /><br />- (void)chargePlayer:(int)index{<br /> player = [[AVAudioPlayer alloc]initWithContentsOfURL:[sonArray objectAtIndex:index] error:nil];<br /> [player prepareToPlay];<br />}<br />- (IBAction)listenAlarmMelody {<br /> if(superView = [self superview]){<br /> if([player isPlaying]){<br /> [player stop];<br /> player.currentTime = 0;<br /> }else{<br /> //player.numberOfLoops = 1; //n -> tourne n+1 fois //-1 ou -n -> tourne en boucle <br /> [player play];<br /> }<br /> }else{<br /> player.currentTime = 0;<br /> player.numberOfLoops = -1;<br /> [player play];<br /> }<br />}<br />
setAlarmMelody: n'est executée qu'une fois
changeAlarmMelody: est lancée à chaque fois qu'on touche le bouton pour changer de mélodie
listenAlarmMelody: est appelée quand l'alarme sonne ou quand on souhaite écouter une mélodie.
Vraiment je vois pas ce qui ne va pas.
Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Si ton code est parmi tout un projet, tu peux aussi essayer de ne faire qu'un mini projet qui ne fait que ça pour mieux isoler ton souci.
Il me disent :"We are not able to generate your Profile at this time.
Please try again later or try using the Program Portal."