【问题标题】:URL to MPMediaItemMPMediaItem 的 URL
【发布时间】:2012-04-11 00:59:18
【问题描述】:

我有一个简单的问题,但我找不到正确的答案。我有一个歌曲网址以这样的路径保存到我的数据库中。

aSound.path = [[item valueForProperty: MPMediaItemPropertyAssetURL] absoluteString];

如何转换回具有歌曲名艺术家和艺术作品的 MPMediaItem 对象?

有可能吗?

【问题讨论】:

    标签: objective-c ios5 ios4 mpmediaitem mpmediapickercontroller


    【解决方案1】:

    保存:

        NSNumber* persistentID = 
    [mediaItem valueForProperty:MPMediaItemPropertyPersistentID];
    

    加载中:

                MPMediaPropertyPredicate * predicate = 
                  [MPMediaPropertyPredicate 
                    predicateWithValue:persistentID 
                           forProperty:MPMediaItemPropertyPersistentID];
    

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

    注意歌曲 URL 不可靠,因为任何 DRM 歌曲都返回空 url

    【讨论】:

    • 如何使用乘法器连接将媒体项从主机传递到客户端?
    【解决方案2】:

    另外,一个讨厌的 hack 对我有用 (tm)。

    - (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 执行此操作”。

    【讨论】:

    • 它工作正常,不需要太多时间来创建 mpmediaitem 谢谢。为你 +1。:)
    • 这是我非常感谢您在这里发帖的人:ianhowson.com/blog/a-quick-guide-to-using-mysql-in-python。这真的帮助我理解并让我的 Python 逻辑正常工作,所以谢谢,谢谢,再谢谢你!!!呜呜
    猜你喜欢
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 2011-12-30
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    相关资源
    最近更新 更多