Or how to convert an MPMediaItem into an NSDictionary ?
That’s pretty easy :
MPMediaItem contains values targetable through the following properties :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
MPMediaItemPropertyAlbumArtist MPMediaItemPropertyAlbumArtistPersistentID MPMediaItemPropertyAlbumPersistentID MPMediaItemPropertyAlbumTitle MPMediaItemPropertyAlbumTrackCount MPMediaItemPropertyAlbumTrackNumber MPMediaItemPropertyArtist MPMediaItemPropertyArtistPersistentID MPMediaItemPropertyArtwork MPMediaItemPropertyAssetURL MPMediaItemPropertyBeatsPerMinute MPMediaItemPropertyComments MPMediaItemPropertyComposer MPMediaItemPropertyComposerPersistentID MPMediaItemPropertyDiscCount MPMediaItemPropertyDiscNumber MPMediaItemPropertyGenre MPMediaItemPropertyGenrePersistentID MPMediaItemPropertyIsCloudItem MPMediaItemPropertyIsCompilation MPMediaItemPropertyLyrics MPMediaItemPropertyMediaType MPMediaItemPropertyPersistentID MPMediaItemPropertyPlaybackDuration MPMediaItemPropertyPodcastPersistentID MPMediaItemPropertyReleaseDate |
So you can easily write the code to convert everything, taking care of not including nil values :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
- (NSDictionary *)fastEnumarateMPMedia:(MPMediaItem *)media { NSMutableDictionary *dico = [fusion_builder_container hundred_percent="yes" overflow="visible"][fusion_builder_row][fusion_builder_column type="1_1" background_position="left top" background_color="" border_size="" border_color="" border_style="solid" spacing="yes" background_image="" background_repeat="no-repeat" padding="" margin_top="0px" margin_bottom="0px" class="" id="" animation_type="" animation_speed="0.3" animation_direction="left" hide_on_mobile="no" center_content="no" min_height="none"][[NSMutableDictionary alloc] init]; if ([media valueForProperty: MPMediaItemPropertyAlbumArtist]) [dico setObject:[media valueForProperty: MPMediaItemPropertyAlbumArtist] forKey:@"MPMediaItemPropertyAlbumArtist"]; if ([media valueForProperty: MPMediaItemPropertyAlbumArtistPersistentID]) [dico setObject:[media valueForProperty: MPMediaItemPropertyAlbumArtistPersistentID] forKey:@"MPMediaItemPropertyAlbumArtistPersistentID"]; if ([media valueForProperty: MPMediaItemPropertyAlbumPersistentID]) [dico setObject:[media valueForProperty: MPMediaItemPropertyAlbumPersistentID] forKey:@"MPMediaItemPropertyAlbumPersistentID"]; if ([media valueForProperty: MPMediaItemPropertyAlbumTitle]) [dico setObject:[media valueForProperty: MPMediaItemPropertyAlbumTitle] forKey:@"MPMediaItemPropertyAlbumTitle"]; if ([media valueForProperty: MPMediaItemPropertyAlbumTrackCount]) [dico setObject:[media valueForProperty: MPMediaItemPropertyAlbumTrackCount] forKey:@"MPMediaItemPropertyAlbumTrackCount"]; if ([media valueForProperty: MPMediaItemPropertyAlbumTrackNumber]) [dico setObject:[media valueForProperty: MPMediaItemPropertyAlbumTrackNumber] forKey:@"MPMediaItemPropertyAlbumTrackNumber"]; if ([media valueForProperty: MPMediaItemPropertyArtist]) [dico setObject:[media valueForProperty: MPMediaItemPropertyArtist] forKey:@"MPMediaItemPropertyArtist"]; if ([media valueForProperty: MPMediaItemPropertyArtistPersistentID]) [dico setObject:[media valueForProperty: MPMediaItemPropertyArtistPersistentID] forKey:@"MPMediaItemPropertyArtistPersistentID"]; if ([media valueForProperty: MPMediaItemPropertyArtwork]) [dico setObject:[media valueForProperty: MPMediaItemPropertyArtwork] forKey:@"MPMediaItemPropertyArtwork"]; if ([media valueForProperty: MPMediaItemPropertyAssetURL]) [dico setObject:[media valueForProperty: MPMediaItemPropertyAssetURL] forKey:@"MPMediaItemPropertyAssetURL"]; if ([media valueForProperty: MPMediaItemPropertyBeatsPerMinute]) [dico setObject:[media valueForProperty: MPMediaItemPropertyBeatsPerMinute] forKey:@"MPMediaItemPropertyBeatsPerMinute"]; if ([media valueForProperty: MPMediaItemPropertyComments]) [dico setObject:[media valueForProperty: MPMediaItemPropertyComments] forKey:@"MPMediaItemPropertyComments"]; if ([media valueForProperty: MPMediaItemPropertyComposer]) [dico setObject:[media valueForProperty: MPMediaItemPropertyComposer] forKey:@"MPMediaItemPropertyComposer"]; if ([media valueForProperty: MPMediaItemPropertyComposerPersistentID]) [dico setObject:[media valueForProperty: MPMediaItemPropertyComposerPersistentID] forKey:@"MPMediaItemPropertyComposerPersistentID"]; if ([media valueForProperty: MPMediaItemPropertyDiscCount]) [dico setObject:[media valueForProperty: MPMediaItemPropertyDiscCount] forKey:@"MPMediaItemPropertyDiscCount"]; if ([media valueForProperty: MPMediaItemPropertyDiscNumber]) [dico setObject:[media valueForProperty: MPMediaItemPropertyDiscNumber] forKey:@"MPMediaItemPropertyDiscNumber"]; if ([media valueForProperty: MPMediaItemPropertyGenre]) [dico setObject:[media valueForProperty: MPMediaItemPropertyGenre] forKey:@"MPMediaItemPropertyGenre"]; if ([media valueForProperty: MPMediaItemPropertyGenrePersistentID]) [dico setObject:[media valueForProperty: MPMediaItemPropertyGenrePersistentID] forKey:@"MPMediaItemPropertyGenrePersistentID"]; if ([media valueForProperty: MPMediaItemPropertyIsCloudItem]) [dico setObject:[media valueForProperty: MPMediaItemPropertyIsCloudItem] forKey:@"MPMediaItemPropertyIsCloudItem"]; if ([media valueForProperty: MPMediaItemPropertyIsCompilation]) [dico setObject:[media valueForProperty: MPMediaItemPropertyIsCompilation] forKey:@"MPMediaItemPropertyIsCompilation"]; if ([media valueForProperty: MPMediaItemPropertyLyrics]) [dico setObject:[media valueForProperty: MPMediaItemPropertyLyrics] forKey:@"MPMediaItemPropertyLyrics"]; if ([media valueForProperty: MPMediaItemPropertyMediaType]) [dico setObject:[media valueForProperty: MPMediaItemPropertyMediaType] forKey:@"MPMediaItemPropertyMediaType"]; if ([media valueForProperty: MPMediaItemPropertyPersistentID]) [dico setObject:[media valueForProperty: MPMediaItemPropertyPersistentID] forKey:@"MPMediaItemPropertyPersistentID"]; if ([media valueForProperty: MPMediaItemPropertyPlaybackDuration]) [dico setObject:[media valueForProperty: MPMediaItemPropertyPlaybackDuration] forKey:@"MPMediaItemPropertyPlaybackDuration"]; if ([media valueForProperty: MPMediaItemPropertyPodcastPersistentID]) [dico setObject:[media valueForProperty: MPMediaItemPropertyPodcastPersistentID] forKey:@"MPMediaItemPropertyPodcastPersistentID"]; if ([media valueForProperty: MPMediaItemPropertyReleaseDate]) [dico setObject:[media valueForProperty: MPMediaItemPropertyReleaseDate] forKey:@"MPMediaItemPropertyReleaseDate"]; return dico; } |