1

私は1つのアプリケーションを開発しています。電話ライブラリから音楽ファイルを取得する必要があります。そのために、MPMediaPickerCOntrollerを使用しています。しかし、didpickingitemデリゲートメソッドを起動しません。私のコードは以下のようです。

- (void)viewDidLoad
 {
[super viewDidLoad];
MPMediaPickerController *picker =[[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeMusic];
picker.delegate                     = self;
picker.allowsPickingMultipleItems   = YES;
picker.prompt                       =@"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);

  }
4

2 に答える 2

0

.h で MPMediaPickerControllerDelegate を宣言していますか?

元:

@interface FirstViewController : UIViewController

そうしないと、メソッドが起動しない理由が説明されます。また、シミュレーターで動作するとは思いません。デバイスのみ。

編集:

-(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];
}
于 2012-06-19T12:56:12.317 に答える
0

ここから読むiPhoneのミュージックプレーヤーフレームワーク

于 2012-06-19T12:49:32.163 に答える