首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MPMediaPickerController - iOS7

MPMediaPickerController - iOS7
EN

Stack Overflow用户
提问于 2013-09-21 21:25:59
回答 6查看 5.3K关注 0票数 4

我在iOS 7上开发了测试应用程序,使用MPMediaPickerController从音乐库中挑选音乐。但当我显示媒体选取器控制器时,它显示为空屏幕。这是代码

代码语言:javascript
复制
(void) pickSong
{
    MPMediaPickerController *mediaPicker = [[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeMusic];
    mediaPicker.delegate = self;
    mediaPicker.allowsPickingMultipleItems = NO;
    mediaPicker.prompt = NSLocalizedString(@"Select Your Favourite Song!", nil);
    [mediaPicker loadView];
    [self.navigationController presentViewController:mediaPicker animated:YES completion:nil];
}

#pragma mark - MPMediaPickerController delegate

(void) mediaPicker:(MPMediaPickerController *) mediaPicker2 didPickMediaItems:(MPMediaItemCollection *) mediaItemCollection {
    [self dismissViewControllerAnimated:YES completion:nil];

    MPMediaItem *mediaItem = [[mediaItemCollection items] objectAtIndex:0];
    self.item.soundName = [mediaItem valueForProperty:MPMediaItemPropertyTitle];
    self.item.soundUrl = [[mediaItem valueForProperty:MPMediaItemPropertyAssetURL] absoluteString];
}

(void) mediaPickerDidCancel:(MPMediaPickerController *)mediaPicker{
    [self dismissViewControllerAnimated:YES completion:NULL];
}

请帮帮我。

EN

回答 6

Stack Overflow用户

发布于 2013-10-29 12:55:43

这是一个iOS错误,但它仅在64位(A7)设备(目前只有iPhone 5S )上运行32位构建时才会发生。要解决此问题,请向您的应用程序添加64位架构。(在xcode中打开构建设置,并将体系结构从$ARCHS_STANDARD更改为$ARCHS_STANDARD_INCLUDING_64_BIT。)然后,您可能需要修复一些编译、链接和运行时问题。请参阅Apple的64位转换指南。

票数 4
EN

Stack Overflow用户

发布于 2013-09-24 00:02:21

似乎在ios7中有一个错误,它不喜欢出现在导航控制器中--试着直接从视图控制器中呈现它。

票数 2
EN

Stack Overflow用户

发布于 2014-02-10 23:16:07

我也有同样的问题,对我来说,解决方案是这里给出的两个解决方案的组合。首先,我必须将我的应用程序转换为64位,将架构更改为“标准...(包括64位)”。一旦我纠正了导致的所有警告,我必须将MPMediaPickerController更改为以模式呈现,而不是在导航堆栈上:

代码语言:javascript
复制
- (IBAction)didSelectMusicPicker:(id)sender {
    MPMediaPickerController *picker = [[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeMusic];

    picker.delegate                     = self;
    picker.allowsPickingMultipleItems   = YES;
    picker.prompt                       = NSLocalizedString (@"Add songs to play", "Prompt in media item picker");

    //[self.navigationController pushViewController:picker animated:YES];
    [self presentViewController:picker animated:TRUE completion:NULL];
}

当然,我还需要更改mediaPicker:didPickMediaItems:mediaPickerDidCancel:以使用dismissViewControllerAnimated。解决了所有这些问题后,选择器在运行iOS 7的iPhone 4和iPhone 5S上都能正常工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18933147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档