Question

Comment puis-je obtenir un fichier de musique de la bibliothèque iPod dans AVAudioPlayer?

Était-ce utile?

La solution

Le SDK ne contient aucune disposition pour la lecture des fichiers de la bibliothèque de l'iPod (que vous aurez besoin de faire pour utiliser AVAudioPlayer avec elle), probablement pour des raisons anti-piratage. Pour lire des éléments de bibliothèque iPod, utilisez la classe MPMusicPlayerController.

Edit:.. Ce n'est plus précis Voir les réponses ci-dessous qui décrivent l'utilisation de la classe AVPlayer

Autres conseils

Comme David mentionne il y a plus de travail à faire que cela, par exemple, vous devez gérer la lecture de la piste suivante dans une collection d'articles de presse, mais voici une façon de le faire avec un ensemble de MPMediaItems qu'un utilisateur choisi parmi le sélecteur iPod. Le AssetURL est ce que vous utilisez, il vous donne un chemin vers le fichier MP3 (par exemple ipod-bibliothèque: //item/item.mp3 id = -6889145242935454020)

NSURL *anUrl = [[mediaItems objectAtIndex: 0] valueForProperty:MPMediaItemPropertyAssetURL];
self.audioPlayerMusic = [[[AVPlayer alloc] initWithURL:anUrl] retain];                      
[self.audioPlayerMusic play];

Oui, vous pouvez jouer des chansons de la bibliothèque iPod à l'aide du SDK sans avoir recours à la classe MPMusicPlayerController.

La classe AVPlayer plus basique peut gérer des fichiers audio à partir de la bibliothèque iPod en utilisant la valeur de NSUrl de la propriété MPMediaItemPropertyAssetURL de la chanson. Vous devez faire beaucoup plus de travail pour obtenir l'installation de tout correctement, mais il peut être fait.

Y at-il possibilité d'obtenir des informations sur dB-dosage MPMusicPlayerController? Peut-être initier un AVAudioSession pour l'enregistrement en parallèle ferait le travail ?? J'ai besoin dB valeurs pour construire une sorte de volume spectrographe.

- (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection {
    NSURL *url = [[mediaItemCollection.items objectAtIndex:0] valueForProperty:MPMediaItemPropertyAssetURL];

    NSError *error;
    self.player = [[AVAudioPlayer alloc] url error:&error];

    if (!error) {
        [self.player prepareToPlay];
        [self.player play];
    }

    [mediaPicker dismissModalViewControllerAnimated:YES];
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top