2010-08-05 10 views
2
NSError *err; 

// Initialize audio player 
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&err]; 

audioPlayer.delegate = self; 
[audioPlayer play]; 

Avec le code ci-dessus, j'essaie d'initialiser la lecture d'un fichier .mp3, mais la lecture ne démarre pas du tout. Il n'y a pas de son. Qu'est-ce que je fais mal? J'ai inspecté "err" et il n'y a rien là.La lecture audio ne démarre pas

Edit: Après avoir ajouté AVAudioSession, j'obtiens l'erreur suivante de AVAudioPlayer

The operation couldn’t be completed. (OSStatus error -43.) 

Répondre

5

Apparemment, AVAudioPlayer ne prend pas en charge le streaming via. HTTP que j'essayais de faire, donc en utilisant AVPlayer à la place, je l'ai eu le travail.

0

Avez-vous initialisez un AVAudioSession?

Ce qui suit fonctionne bien pour moi. Pourrait vous donner un indice de ce qui ne fonctionne pas pour vous.

Initialiser:

AVAudioSession* session = [AVAudioSession sharedInstance]; 
[session setCategory:AVAudioSessionCategoryAmbient error:nil]; 
[session setActive:TRUE error:nil]; 

Chargement:

AVAudioPlayer* audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileUrl error:nil]; 
audioPlayer.numberOfLoops = 0; 
[audioPlayer prepareToPlay]; 
audioPlayer.volume = 1.0; 

Jouer:

[audioPlayer play]; 

Mise à jour

Pour trouver th e droit NSRUL pour fileUrl, j'ai utilisé ce code:

NSURL* fileUrl = [NSURL fileURLWithPath: 
    [[NSBundle mainBundle] pathForResource:@"MySound" ofType:@"wav"] isDirectory:NO]; 

Et puis j'ajouté MySound.wav au projet (bundle).

+0

J'ai essayé d'utiliser AVAudioSession, mais maintenant je reçois seulement cette erreur; L'opération n'a pas pu aboutir. (Erreur OSStatus -43.) – eriktm

+0

J'ai le code ci-dessus qui fonctionne à la fois avec les mp3 et les ondes. Essayez un autre fichier, un fichier .wav. –