Нужно хранить песню с iPod в NSUserDefaults.Почти понял, нужна помощь, чтобы туда добраться? - PullRequest
0 голосов
/ 07 февраля 2011

Итак, вот что у меня есть:

-(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];

Но я не уверен, что туда положить. Постоянный идентификатор не работает. Я также могу получить любые другие свойства из песни, используя мой метод выше, а не только persistentID. Так что, если мне понадобятся другие, я тоже могу их получить. Помогите с этим?

Ответы [ 2 ]

1 голос
/ 21 августа 2012

Только знайте, согласно документам Apple:

Значение идентификатора MPMediaItemPropertyPersistentID сохраняется при запуске приложения и при синхронизации, которые не изменяют состояние синхронизации элемента мультимедиа. Не гарантируется, что значение сохранится в цикле синхронизации / несинхронизации / синхронизации.

Я никогда не сталкивался с случаем, когда это было проблемой, однако это имело место с тех пор, как MPMediaItemPropertyPersistentID был представлен в iOS 3.0

1 голос
/ 08 февраля 2011

Вы должны быть в состоянии сделать что-то вроде этого:

MPMediaPropertyPredicate * predicate = [MPMediaPropertyPredicate predicateWithValue:storedPID forProperty: MPMediaItemPropertyPersistentID];
MPMediaQuery * query = [[MPMediaQuery alloc] initWithFilterPredicates: [NSSet setWithObject: predicate]];
[self.musicPlayer setQueueWithQuery:query];
[self.musicPlayer play];
[query release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...