Я реализовал MPMediaPickerControllerКак я могу использовать UIDocumentInteractionController с MPMediaPickerController
- (IBAction)pickSong:(id)sender {
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");
picker.showsCloudItems = YES;
[self presentModalViewController: picker animated: YES];
}
- (void) mediaPicker: (MPMediaPickerController *) mediaPicker didPickMediaItems: (MPMediaItemCollection *) mediaItemCollection
{
[self dismissModalViewControllerAnimated: YES];
if (mediaItemCollection.count > 0) {
MPMediaItem *mediaItem = [mediaItemCollection.items objectAtIndex:0];
NSLog(@"%@ - %@, %@", [mediaItem valueForProperty:MPMediaItemPropertyTitle], [mediaItem valueForProperty:MPMediaItemPropertyArtist], [mediaItem valueForProperty:MPMediaItemPropertyAssetURL]);
self.fileURL = [mediaItem valueForProperty:MPMediaItemPropertyAssetURL];
}
}
- (void) mediaPickerDidCancel: (MPMediaPickerController *) mediaPicker
{
[self dismissModalViewControllerAnimated: YES];
}
и я также осуществил UIDocumentInteractionController отдельно, чтобы иметь возможность открыть песню в любом приложении, которое способно справиться с этим
- (IBAction)shareButtonPressed:(id)sender {
NSURL *url = [[NSBundle mainBundle] URLForResource:@"Song.mp3" withExtension:nil];
self.docController= [UIDocumentInteractionController interactionControllerWithURL:url];
[self.docController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES];
}
прямо сейчас то, что я пытаюсь сделать, состоит в том, чтобы объединить их два, я хочу поделиться песней, которая выбрана пользователем, вот что я сохранил URL-адрес песни self.fileURL = [mediaItem valueForProperty:MPMediaItemPropertyAssetURL];
, и я сделал простое изменение метода share
- (IBAction)shareButtonPressed:(id)sender {
NSURL *url = self.fileURL;
self.docController= [UIDocumentInteractionController interactionControllerWithURL:url];
[self.docController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES];
}
Я думал, что это будет работать, но вместо того, что я получаю ошибку говоря
* отказ Assertion в - [UIDocumentInteractionController setURL:], /SourceCache/UIKit/UIKit-2903.23/UIDocumentInteractionController .m: 1010 2013-10-28 03: 14: 10.294 ShareTest [1567: 60b] * Завершение приложения из-за Неоткрытое исключение «NSInternalInconsistencyException», причина: 'UIDocumentInteractionController: неверная схема ipod-library. Только поддерживается файловая схема. '
проблема явно с URL, я не выполнил его хорошо, или я думаю, что решение это было бы взять NSData в MPMediaItem и сохранить его в виде .mp3 файла в моем приложении, но Я не знаю, как этого добиться, а
Спасибо заранее