2011-02-07 131 views
0

所以這是我到目前爲止有:需要將iPod中的歌曲存儲在NSUserDefaults中。幾乎想通了,雖然需要幫助到達那裏?

-(void)mediaPicker: (MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection { 

    [self dismissModalViewControllerAnimated:YES]; 
    // Assign the selected item(s) to the music player and start playback. 
self.selectedSong = mediaItemCollection; 

    MPMediaItem *chosenItem = mediaItemCollection.representativeItem; 
    NSLog(@"chosenItem: %@", chosenItem); 
    persistentID = [chosenItem valueForProperty:MPMediaItemPropertyPersistentID]; //persistentID is an NSString. 
    NSLog(@"persistentID: %@", persistentID); 
    [prefs setValue:persistentID forKey:@"persistentIDKey"]; 
    [prefs synchronize]; 

}

但現在我需要弄清楚要放什麼,我想它檢索到的腳本的一部分。這將是標準的做法..

[self.musicPlayer stop]; 
[self.musicPlayer setNowPlayingItem:*ITEM HERE*]; 
[self.musicPlayer play]; 

但我不確定放在那裏。持久性ID不起作用。我也可以使用上面的方法從歌曲中獲得其他任何屬性,而不僅僅是persistentID。所以如果我需要其他人,那麼我也可以得到這些人。幫助這個?

回答

1

你應該能夠做這樣的事情:

MPMediaPropertyPredicate * predicate = [MPMediaPropertyPredicate predicateWithValue:storedPID forProperty: MPMediaItemPropertyPersistentID]; 
MPMediaQuery * query = [[MPMediaQuery alloc] initWithFilterPredicates: [NSSet setWithObject: predicate]]; 
[self.musicPlayer setQueueWithQuery:query]; 
[self.musicPlayer play]; 
[query release]; 
+0

推出試了一下我的鬧鐘和工作的情況。 +1 – 2012-01-16 18:32:17

1

要知道,按照蘋果的文檔:

的MPMediaItemPropertyPersistentID標識符的值在應用程序啓動持續和跨越同步的是請勿更改媒體項目的同步狀態。 該值不保證在同步/非同步/同步週期內持續存在。

我從來沒有碰到過這樣的情況:這一直是一個問題,但是這一直以來MPMediaItemPropertyPersistentID在iOS 3.0