Ceci est très étrange, mon application fonctionne très bien sur l'iPhone (simulateur et appareil), mais se bloque sur le simulateur d'ipad. L'erreur pointe toujours vers la méthode prepareToPlay. Quand je retire cette méthode, elle pointe sur la méthode de jeu. La zone de débogage n'affiche aucune erreur ou avertissement. Ma seule piste est l'arbre des méthodes mais je ne peux pas trouver de solution. Au fait, les fichiers audio sont mp3AVAudioPlayer se bloque sur un simulateur d'ipad mais fonctionne bien sur le simulateur d'iPhone
Toute aide sera grandement appréciée.
_ viewDidLoad __
NSError * = erreur nulle; [[AVAudioSession sharedInstance] setCategory: erreur AVAudioSessionCategoryPlayback: & erreur]; // AudioSessionInitialize (NULL, NULL, NULL, NULL);
timerSong = [[AVAudioPlayer alloc] initWithContentsOfURL:alarmSong error:&error];
[self loadSongTitles];
//Make sure the system follows our playback status
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
//infinite loops
audio1.numberOfLoops = -1;
audio2.numberOfLoops = -1;
timerSong.numberOfLoops = -1;
//set volume according to volume label
[audio1 setVolume:0.5];
[audio2 setVolume:0.5];
//strat playing track(s)
[audio1 play];
[audio2 play];
loadSongsTitles
for (NSNumber *number in passingArray) {
//set the correct titles for each audio
if (number == [NSNumber numberWithInt:10]) {
firstSong = title;
NSURL *audioFileLocationURL = [[NSBundle mainBundle] URLForResource:[backgroundTracks objectAtIndex:firstSong] withExtension:@"mp3"];
audio1 = [[AVAudioPlayer alloc] initWithContentsOfURL:audioFileLocationURL error:&error];
[audio1 setDelegate:self]; //setting delagate to restart after interruptions
[audio1 prepareToPlay];
audio1Label.text = [titles objectAtIndex:title];
//when two songs selected make label empty
onlyOneAudioLabel.text = @"";
}
Mise à jour: Je l'ai travail, il suffit d'utiliser des fichiers WAV au lieu de mp3 et il fonctionne. Aucune idée pourquoi. J'espère que cela aide quelqu'un.