Utilizzando AVAudioPlayer per aggiungere audio a un'applicazione funzionante, si arresta/si blocca su prepareToPlay. Nota che si ferma/si blocca durante il gioco. Premendo più volte "Continua l'esecuzione del programma" si riavvia l'applicazione. Questo problema si verifica solo quando si esegue il programma nel simulatore.Xcode si arresta su prepareToPlay
Utilizzando Xcode 4.6
Frammenti di codice:
ViewController.h
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
@interface ViewController : UIViewController <AVAudioPlayerDelegate>
@end
ViewController.m
#import "ViewController.h"
@interface ViewController()
{
}
@property (nonatomic, strong) AVAudioPlayer *audioPlayer;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
[self initilizeAudio];
}
- (void)initilizeAudio
{
NSError *error = nil;
NSURL *audioURL = [[NSBundle mainBundle] URLForResource:@"Background" withExtension:@"mp3"];
self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioURL error:&error];
if (error)
{
NSLog(@"Error in audioPlayer: %@", [error localizedDescription]);
}
else
{
[self.audioPlayer setDelegate:self];
[self.audioPlayer prepareToPlay];
}
}
@end
traccia Pila
0 __cxa_throw
21 -[AVAudioPlayer prepareToPlay]
22 -[ViewController viewDidLoad]
.
.
.
A quanto pare non ho ancora il permesso di rispondere alle mie domande. quindi fornire la risposta in un commento. Il problema si sviluppava normalmente con un punto di interruzione impostato su "Tutte le eccezioni" e l'eccezione effettiva generata era __cxa_throw. Che apparentemente risulta essere nelle librerie C++ utilizzate per implementare AVAudioPlayer. Modificando il punto di interruzione su "Tutte le eccezioni di Objective-C", il programma ha funzionato correttamente. (Questo può essere fatto modificando il punto di interruzione e modificando il campo Eccezione in Objective-C.) – zermat
Secondo [Questo post su Meta] (http://meta.stackexchange.com/a/17467) devi aspettare 8 ore se hai meno di 100 rep. Puoi accettare la tua risposta 48 ore dopo. – Sebastian