2

iPhoneの音楽ライブラリを表示するようにプログラミングしています。ユーザーが曲を選択すると、この曲のタイトルがに反映されますUILabel。こんなに簡単だったら!私はそれを反映MPMediaItemしてNSStringそれを取得しようとしましたUILabelが、私はちょうど(null)が返されます!

- (IBAction)showMediaPicker:(id)sender {
    MPMediaPickerController *mediaPicker = [[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeAny];

    mediaPicker.delegate = self;
    //mediaPicker.allowsPickingMultipleItems = YES;
    mediaPicker.prompt = @"Select Your Favourite Song!";

    [self presentModalViewController:mediaPicker animated:YES];
}

- (void) mediaPicker: (MPMediaPickerController *) mediaPicker didPickMediaItems: (MPMediaItem *) mediaItemCollection {

    NSString *titleString = [mediaItemCollection valueForProperty:MPMediaItemPropertyTitle];
    titleLabel.text = [NSString stringWithFormat:@"Title: %@",titleString];


    [self dismissModalViewControllerAnimated: YES];
}

前もって感謝します

4

1 に答える 1

2

mediaItemCollectionのタイトルを取得しようとしています。次のような個々の曲のタイトルを取得する必要があります。

MPMediaItem *selectedSong = [mediaItemCollection items] objectAtIndex:0];
NSString *titleString = [selectedSong valueForProperty:MPMediaItemPropertyTitle];

また、ちなみに、MPMediaPickerControllerDelegateのデリゲート設定が間違っています。

そのはず:

- (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection

-MPMediaItemCollectionを単なるMPMediaItemとして使用できます

于 2013-01-21T21:04:52.523 に答える