Skip to content

Music Releases

Feature
GetPlaylistsAsync() on IMediaLibrary — returns all playlists from the device music library with song counts, sorted alphabetically
Feature
GetPlaylistTracksAsync(playlistId) on IMediaLibrary — returns all tracks in a playlist, in playlist order
Feature
PlaylistInfo record — contains playlist Id, Name, and SongCount
Feature Android
Android playlist querying via MediaStore.Audio.Playlists and MediaStore.Audio.Playlists.Members
Feature iOS
iOS playlist querying via MPMediaQuery.PlaylistsQuery and MPMediaPlaylist
Feature
MusicFilter class — combine Genre, Year, Decade, and SearchQuery criteria with AND logic to filter tracks
Feature
GetTracksAsync(MusicFilter) on IMediaLibrary — query tracks matching any combination of filter criteria
Feature
GetYearsAsync() on IMediaLibrary — returns distinct release years with track counts, with optional MusicFilter parameter
Feature
GetDecadesAsync() on IMediaLibrary — returns distinct decades (e.g., 1990s) with track counts, with optional MusicFilter parameter
Feature
GroupedCount<T> record — generic type pairing a grouped value with its track count, used by all grouping methods
Feature
Year property on MusicMetadata — the release year of the track (nullable)
Feature
GetGenresAsync now accepts an optional MusicFilter and returns GroupedCount<string> with track counts
Feature
Cross-dimensional browsing — get genres by decade, decades by genre, years by genre, etc.
Feature Android
Year metadata read from MediaStore.Audio.Media.YEAR
Feature iOS
Year metadata extracted from MPMediaItem.ReleaseDate
Feature
GetGenresAsync() on IMediaLibrary — returns all distinct genre names from the user’s music library, sorted alphabetically
Feature Android
Android genre querying via MediaStore.Audio.Genres
Feature iOS
iOS genre querying via MPMediaQuery.GenresQuery
Feature
Permission management — request and check music library access using platform-native APIs
Feature
Music metadata querying — retrieve all tracks or search by title, artist, or album
Feature
Audio playback — play, pause, resume, and stop music files with state change and completion events
Feature
File copying — copy music files to app-local storage (where DRM permits)
Feature
Dependency injection — AddShinyMusic() extension method for IServiceCollection registration
Feature
HasStreamingSubscriptionAsync() — check for active Apple Music subscription capability on iOS
Feature
StoreId property on MusicMetadata — Apple Music catalog ID enabling streaming playback of subscription content
Feature Android
Android implementation using MediaStore.Audio.Media and Android.Media.MediaPlayer
Feature iOS
iOS implementation using MPMediaQuery and AVAudioPlayer
Feature iOS
Streaming playback of Apple Music subscription tracks via MPMusicPlayerController.SystemMusicPlayer using StoreId
Feature iOS
DRM-aware — ContentUri is empty for Apple Music subscription tracks that cannot be copied, but streaming playback is available via StoreId
Feature iOS
IsExplicit property on MusicMetadata — reports whether a track is marked as explicit content via MPMediaItem.IsExplicitItem