【问题标题】:iPhone sdk, save MPMediaItemCollection?iPhone sdk,保存 MPMediaItemCollection?
【发布时间】:2010-12-17 06:34:37
【问题描述】:

我的应用程序显示MPMediaPickerController。我想保存MediaItem 并在启动时重新开始播放。我认为使用MPMediaQuery 是可行的。看来,我应该使用MPMediaItemPropertyPersistentID,但我不确定如何查询它。有什么想法吗?

【问题讨论】:

    标签: iphone mpmediapickercontroller mpmediaquery


    【解决方案1】:

    伙计,你不需要保存 mediaCollection。媒体集合它只是 MPMediaItem 对象的数组。所以你最好保存这个项目的persistentIds。这很容易

    //it's how to know persistentId of the song after you got mediaItemCollection from your mediaPickerViewController
    //then you can sav it in userDefaults.
    - (NSNumber *)getPersistentId :(MPMediaItemCollection *)collection atIndex:(int)index {
     MPMediaItem *mediaItem = [collection.items objectAtIndex:index];
     NSNumber *anId = [mediaItem valueForProperty:MPMediaItemPropertyPersistentID];
     return anId;
    }
    
    //when your application will be launched next time you can get required song:
    - (void)obtainSongWitId:(NSNumber *)persistentId {
     MPMediaQuery *query = [MPMediaQuery songsQuery];
     MPMediaPropertyPredicate *predicate = [MPMediaPropertyPredicate predicateWithValue:persistentId forProperty:MPMediaItemPropertyPersistentID];
     [query addFilterPredicate:predicate];
     NSArray *mediaItems = [query items];
     //this array will consist of song with given persistentId. add it to collection and play it
     MPMediaItemCollection *col = [[MPMediaItemCollection alloc] initWithItems:mediaItems];
     ///....
     [col release];
    }
    

    【讨论】:

    • 是否有必要将单个 MPMediaItem 包装到 MPMediaItemCollection 中?
    【解决方案2】:

    这应该可行:

    MPMediaQuery *query = [MPMediaQuery songsQuery];
    MPMediaPropertyPredicate *predicate = [MPMediaPropertyPredicate predicateWithValue:myPersistentID forProperty:MPMediaItemPropertyPersistentID];
    
    [query addFilterPredicate:predicate];
    NSArray *songs = [query items];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-22
      • 2014-03-05
      • 1970-01-01
      • 2012-02-12
      相关资源
      最近更新 更多