2011-10-06 4 views
4

J'essaie de mettre en pause le AVAudioPlayer s'il est en cours de lecture. Quand je débogue mon code et vérifie AVAudioPlayer, je vois qu'il est alloué. Lorsque j'essaie d'accéder à une méthode/propriété (c'est-à-dire myAudioPlayer isPlaying), j'obtiens une erreur EXC_BAD_ACCESS. Cela se produit si le AVAudioPlayer n'a pas de son chargé. Est-ce que je peux faire une vérification pour voir si elle a chargé un son? J'ai essayé d'accéder à myAudioPlayer.data, mais j'ai toujours la même erreur.AVAudioPlayer EXC_BAD_ACCESS

+0

Pouvez-vous écrire du code? Je suppose que vous accédez à AVAudioPlayer avant son initialisation. –

+0

essayer de vérifier si elle a initialisé correctement https://www.reddit.com/r/swift/comments/2whoaz/avaudioplayer_issue_with_stopping_and_checking_if – WINSergey

Répondre

0

Vous devez d'abord ajouter AVFoundation Framework. Ensuite, importer l'infrastructure AVFounadtion dans le fichier .h.

.h:

AVAudioPlayer *audioPlayer; 

.m:

NSURL *url1 = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/audio1.mp3", [[NSBundle mainBundle] resourcePath]]]; 

    NSError *error; 
    audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url1 error:&error]; 
    //audioPlayer.numberOfLoops = 0; 

     [audioPlayer play]; 

Essayez ce code, il peut vous aider ..

4

Pour moi, ce fut parce que je ne demande pas l'une des les initialiseurs désignés. Je l'instanciais avec AVAudioPlayer() au lieu des initialiseurs désignés qui sont public init(contentsOfURL url: NSURL) throws et public init(data: NSData) throws