0

これは私がこれまでに持っているものです:

-(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 だけでなく、曲から他のプロパティを取得することもできます。したがって、他のものが必要な場合は、それらも入手できます。これを手伝いますか?

4

2 に答える 2

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];
于 2011-02-07T21:51:03.973 に答える
1

Appleのドキュメントに従って、注意してください:

MPMediaItemPropertyPersistentID 識別子の値は、アプリケーションの起動後も、メディア アイテムの同期ステータスを変更しない同期間でも持続します。値は、同期/非同期/同期サイクル全体で持続することが保証されていません。

これが問題になっている例に遭遇したことはありませんがMPMediaItemPropertyPersistentID、iOS 3.0 で導入されて以来、これは当てはまります。

于 2012-08-21T18:41:35.060 に答える