I've been using VinylMusicPlayer because it has all the features I need (supports ReplayGain and playlists auto update when they are modified externally)
But I would much rather use MetroMusicPlayer as it looks so much prettier. But I'd have to manually update all playlists and it does not support ReplayGain
I should probably mention that I have limited myself to open source applications and that I don't particularly like the look of the main recommendations unfortunately.
Why worry? Most of my library is FLAC, direct played from Plex because my other go to server/player (MPD/ncmpcpp) is a bit hinky to browse and curate on mobile, I've got WAY too broad a catalog to carry around, and my mood is to fickle to prepare small subsets of mobile music in advance.
I've been using Poweramp for years. Love the custom options: replay gain, cross over fades that you can control timing, plenty of sound control options and No limit to playlist, search within playlist. My pop list is 5K+.
I have tried several over the years. It's definitely the most options for customization (IMO). The settings are easy to navigate. I used one a few years back and it was a headache to find things.
It doesn't seem to be designed for playlists that you manage from a PC for example though. Importing external playlists seemed like a pain unfortunately
VLC. Dunno about playlists auto updating or replaygain, but it has a lot of features and they all work well. And unlike the desktop app, the mobile version actually has a good UI.
Ditto on VLC. Although it does have some annoying things (like it starts rescanning frequently on startup). I keep my collection in flac on a giant microSD though, so it's pretty great in that context. Paired with my Sennheisers I'm a very happy man.
I mostly use poweramp, but I do have devices that kinda suck, but work fine through a USB DAC, abd I use usb player for those, as long as they're USB c