首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MPMediaItem的URL

MPMediaItem的URL
EN

Stack Overflow用户
提问于 2012-03-27 21:30:34
回答 2查看 5.9K关注 0票数 8

我有一个简单的问题,但我找不到正确的答案。我有一首歌的url保存到我的数据库中,路径如下。

代码语言:javascript
复制
aSound.path = [[item valueForProperty: MPMediaItemPropertyAssetURL] absoluteString];

如何转换回具有歌曲名称、艺术家和图片的MPMediaItem对象?

有可能吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-27 22:14:56

保存:

代码语言:javascript
复制
    NSNumber* persistentID = 
[mediaItem valueForProperty:MPMediaItemPropertyPersistentID];

正在加载:

代码语言:javascript
复制
            MPMediaPropertyPredicate * predicate = 
              [MPMediaPropertyPredicate 
                predicateWithValue:persistentID 
                       forProperty:MPMediaItemPropertyPersistentID];

另一个例子:NSNumber for MPMediaItemPropertyPersistentID to NSString and back again

注意歌曲url是不可靠的,因为任何DRM歌曲都返回一个空url。

票数 7
EN

Stack Overflow用户

发布于 2013-10-19 04:11:53

或者,一个对我有效的讨厌的hack (tm)。

代码语言:javascript
复制
- (MPMediaItem *)getMediaItemForURL:(NSURL *)url {
    // We're going to assume that the last query value in the URL is the media item's persistent ID and query off that.

    NSString *queryString = [url query];
    if (queryString == nil) // shouldn't happen
        return nil;

    NSArray *components = [queryString componentsSeparatedByString:@"="];
    if ([components count] < 2) // also shouldn't happen
        return nil;

    id trackId = [components objectAtIndex:1];

    MPMediaQuery *query = [[MPMediaQuery alloc] init];
    [query addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:trackId forProperty:MPMediaItemPropertyPersistentID]];

    NSArray *items = [query items];

    if ([items count] < 1) // still shouldn't happen
        return nil;

    return [items objectAtIndex:0];
}

感谢评论,这可能会出问题或如何改善它。我更喜欢传递URL而不是PersistentID,因为我有多个媒体源,所有这些都可以使用URL。使用PersistentID将意味着“如果这是一个媒体ID,请执行此操作,否则,请使用URL执行此操作”。

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

https://stackoverflow.com/questions/9890500

复制
相关文章

相似问题

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