2012-06-19 2 views
1

iam développement d'une application.En ce que j'ai besoin d'obtenir les fichiers musicaux de la bibliothèque du téléphone.Pour ce iam en utilisant le MPMediaPickerCOntroller.Mais il ne déclenche pas la méthode de délégué didpickingitem.Mon code comme ci-dessous.Comment obtenir les fichiers musicaux de la bibliothèque

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
MPMediaPickerController *picker =[[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeMusic]; 
picker.delegate      = self; 
picker.allowsPickingMultipleItems = YES; 
picker.prompt      [email protected]"Add songs to play"; 
[self presentModalViewController:picker animated: YES]; 
} 

- (void) mediaPicker: (MPMediaPickerController *) mediaPicker didPickMediaItems: (MPMediaItemCollection *) mediaItemCollection 
    { 
     NSLog(@"sdfadsf"); 
     NSLog(@"%@",mediaItemCollection); 
     NSArray *slist=[mediaItemCollection copy]; 
     NSLog(@"%@",slist); 

    } 
+0

Etes-vous sûr que vous voulez faire dans 'viewDidUnload'? – omz

+0

Non c'est dans viewdidload() – user1400581

Répondre

0

Déclarez-vous le MPMediaPickerControllerDelegate dans votre .h?

ex:

@interface FirstViewController: UIViewController

Si vous ne cela expliquerait pourquoi la méthode ne se déclenche pas. De plus, je ne crois pas que cela fonctionnera sur le simulateur; seulement sur les appareils.

EDIT:

-(IBAction)presentLibrary:(id)sender 
{ 
    //this is called from a button press, but you could do it in viewDidLoad 
    MPMediaPickerController *picker = [[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeMusic]; 
    picker.delegate = self; 
    picker.allowsPickingMultipleItems = NO; 
    picker.prompt = NSLocalizedString (@"Select any song from the list", @"Prompt to user to choose some songs to play"); 
    [self presentModalViewController: picker animated: YES];  
} 

- (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection 
{ 
    NSLog(@"didpick"); 
    if (mediaItemCollection) { 
     [_mediaPlayer setQueueWithItemCollection: mediaItemCollection]; 
     _mediaCollection = mediaItemCollection; 
    } 

    [mediaPicker dismissModalViewControllerAnimated:YES]; 
} 
+0

S j'ai déclaré que one.i testé sur simulateur. – user1400581

+0

@ user1400581 Oui, le simulateur n'a pas de musique, donc vous ne pouvez pas le tester. J'ai également édité mon post pour vous montrer comment je présente le sélecteur de média. Notez que la méthode didPick n'est appelée que lorsque le sélecteur de média est activé et que l'utilisateur sélectionne une chanson. – RyanG

+0

Donnez-moi le lien pour votre code. – user1400581

Questions connexes