nic*_*ona 13 iphone itunes mpmediapickercontroller ios
在Apple上发布这个没有运气,但现在iOS 6 NDA已经上市,希望更多的目光能够在这里看到它.
我正在尝试修改应用程序以仅允许用户选择已在本地下载的音乐.我在iOS 6 GM下面有以下代码:
MPMediaPickerController* mpc = [[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeAnyAudio];
mpc.allowsPickingMultipleItems = YES;
mpc.modalPresentationStyle = UIModalPresentationCurrentContext;
mpc.showsCloudItems = NO;
[self presentViewController:mpc animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
从文档:
媒体项目选择器的默认行为是YES,这意味着选择器显示可用的iCloud项目.如果媒体项目可通过iTunes Match获得且尚未存储在设备上,则该媒体项目被视为iCloud项目.
我认为这意味着如果启用了iTunes Match,则只有已下载到设备的项目才会显示在选择器中,但我总是会看到整个iTunes Match库.我为此提出了一个雷达,因为它似乎是一个严重的错误.如果有人能告诉我,我很想知道我在这里缺少什么.
小智 9
这似乎是一个操作系统问题.
使用picker.showsCloudItems = NO;
正确显示较少的歌曲,而不是整个列表...其中列出的歌曲是在音乐应用程序中手动下载的歌曲或流式播放并因此缓存的歌曲.
至少在我的情况下,问题是处理缓存的问题.
如果我选择手动下载的歌曲的值MPMediaItemPropertyIsCloudItem
是NO
,这是正确的.我还可以通过该MPMediaItemPropertyAssetURL
属性访问资产的URL .
在另一方面,选择与被缓存的回报一首歌曲YES
上MPMediaItemPropertyIsCloudItem
和nil
上MPMediaItemPropertyAssetURL
,使得这首歌几乎对我没用.
对不起,我没有真正的答案,但我没有足够的声誉来简单评论.
希望我的2美分有所帮助,但在我看来,这个问题只能由Apple在未来的更新中解决.
我也有同样的问题。虽然我无法隐藏这些项目,但这里有一个很好的解决方法,我用它来阻止人们选择它们。在内部didPickMediaItems
,您应该暂时将其加载到 an 中AVPlayerItem
,然后检查该项目的有效性,如下所示:
- (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection
{
MPMediaItem *selectedItem = [[mediaItemCollection items]objectAtIndex:0];
NSURL *tempURL = [selectedItem valueForProperty:MPMediaItemPropertyAssetURL];
AVPlayerItem *playerItem = [[AVPlayerItem alloc]initWithURL:tempURL];
if(playerItem.loadedTimeRanges==NULL)
{
UIAlertView *alert=[[[UIAlertView alloc]initWithTitle:NSLocalizedString(@"Invalid Song Choice",NULL) message:NSLocalizedString(@"Please choose a song that is local to your phone.",NULL) delegate:self cancelButtonTitle:NSLocalizedString(@"Okay",NULL) otherButtonTitles:nil]autorelease];
[alert show];
[playerItem release];
}
else
{
NSLog(@"Your good to go...do whatever you want with the local song");
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2724 次 |
最近记录: |