通过MPMediaPickerController选择音频

时间:2014-04-07 08:21:15

标签: objective-c ios7 mpmediapickercontroller

您好我使用MPMediaPickerController从电话库中挑选音频文件。但它给我空白的屏幕。我无法理解为什么会这样。我在模拟器上运行应用程序。这是我的代码

- (IBAction)selectFile:(UIButton *)sender{

MPMediaPickerController *mediaPicker = [[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeMusic];
mediaPicker.delegate = self;
mediaPicker.allowsPickingMultipleItems = YES;
mediaPicker.prompt = @"Select Your Favourite Song!";
[mediaPicker loadView];
[self.navigationController presentViewController:mediaPicker animated:YES completion:nil]; }

2 个答案:

答案 0 :(得分:0)

MPMediaPickerController在模拟器中不起作用。 Apple在“iPod库访问编程指南”"中记录了这一点。在" Hello Music Player"。说明说:

  

注意:要执行这些步骤,您需要配置设备,因为   模拟器无法访问设备的iPod库。

为了防止断言,您可以随时检查是否可以在代码中访问(请使用ARC和iOS SDK 5.0代码)。

MPMediaPickerController *picker = [[MPMediaPickerController alloc]     initWithMediaTypes:MPMediaTypeAnyAudio];

[picker setDelegate:self];
[picker setAllowsPickingMultipleItems:YES];
[picker setPrompt:NSLocalizedString(@"Add songs to play","Prompt in media item picker")];

@try {
[picker loadView]; // Will throw an exception in iOS simulator
[self presentViewController:picker animated:YES completion:nil];
}
@catch (NSException *exception) {
    [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Oops!",@"Error title")
                            message:NSLocalizedString(@"The music library is not available.",@"Error message when MPMediaPickerController fails to load") 
                           delegate:nil 
                  cancelButtonTitle:@"OK" 
                  otherButtonTitles:nil] show];
}

答案 1 :(得分:0)

对于那些想要在Swift中得到答案的人:

@IBAction func openMediaPickerController(sender: AnyObject) {
        let picker = MPMediaPickerController()
        picker.delegate = self
        picker.allowsPickingMultipleItems = true
        picker.prompt = NSLocalizedString("Chose audio file", comment: "Please chose an audio file")
        self.presentViewController(picker, animated: true, completion: nil)
}
func mediaPickerDidCancel(mediaPicker: MPMediaPickerController) {
    self.dismissViewControllerAnimated(true, completion: nil)
}
func mediaPicker(mediaPicker: MPMediaPickerController, didPickMediaItems mediaItemCollection: MPMediaItemCollection) {
    //run any code you want once the user has picked their chosen audio
}