AVAudioPlayer ne lit pas les files AMR

J'utilise le code ci-dessous pour download un file AMR à partir du Web et jouer par AVAudioPlayer mais à chaque fois je reçois le unrecongnize selector sent to instance erreur d' unrecongnize selector sent to instance .

C'est la méthode qui commence à download et jouer:

 - (IBAction)DisplayAudioPlayView:(id)sender { [self InitializePlayer]; } -(void) InitializePlayer { // Get the file path to the doa audio to play. NSSsortingng *filePath = [[ServerInteraction instance] getAudio:audioData.ID]; // Convert the file path to a URL. NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: filePath]; //Initialize the AVAudioPlayer. audioPlayer= [AVPlayer playerWithURL:fileURL] ; audioPlayer.delegate= self; //THIS LINE CAUSE ERROR// // Preloads the buffer and prepares the audio for playing. [audioPlayer prepareToPlay]; audioPlayer.currentTime = 0; [audioPlayer play] } 

modifier

Basé sur @Michael conseiller je change mon code et ce post j'ai changé mon code à ceci:

 NSURL *fileURL = [[NSURL alloc] initWithSsortingng: @"http://www.domain1.com/mysound.mp3"]; //Initialize the AVAudioPlayer. audioPlayer= [AVPlayer playerWithURL:fileURL]; [audioPlayer play]; 

Maintenant, il a joué le son mais quand j'utilise http://maindomain.com/mysound.amr il ne joue pas le son.

Vérifiez les points suivants:

  • AMR n'est plus pris en charge (pour ≥ iOS 4.3, voir formats audio supportés dans la documentation Apple iOS SDK ).
  • Voulez-vous utiliser l' AVPlayer (audio et video) ou voulez-vous uniquement de l'audio? Utilisez pour l'audio uniquement AVAudioPlayer . L'extrait de code suivant montre comment le gérer.
  • Si vous souhaitez utiliser AVAudioPlayer , votre instance autonome met-elle en œuvre le protocole AVAudioPlayerDelegate ?
  • Votre instance autonome met-elle en œuvre le protocole AVAudioPlayerDelegate ?
  • Avez-vous ajouté et lié correctement le framework AVAudioFoundation ( #import <AVFoundation/AVFoundation.h> )?

     - (void)viewDidLoad { [super viewDidLoad]; NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"audio" ofType:@"m4a"]]; NSError *error = noErr; self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error]; if (error) { NSLog(@"Error in audioPlayer: %@", [error localizedDescription]); } else { self.audioPlayer.delegate = self; [self.audioPlayer prepareToPlay]; } } - (void)playAudio { [self.audioPlayer play]; }