One mixer, one rate
Android commonly mixes several audio streams at an output rate selected by the device and route. A music file with a different rate may be resampled. The exact path varies by phone, operating-system version, output and app; not every device or route is fixed at 48 kHz.
Bit depth inside the player and at the output
The decoder, player, system and device all affect precision. Processing a source in floating point can avoid premature truncation inside the player, but it does not by itself prove the final output preserves every source sample.
What Android 14 changed
Android 14 introduced APIs for preferred USB mixer attributes. The requested configuration must be supported by the actual route. Android’s documentation makes clear that the BIT_PERFECT mixer behaviour is not mandatory on every implementation. An Android version number alone is therefore insufficient proof.
See the Android USB mixer documentation. In MP95, check any available rate-matching option against the actual output and DAC display.
On Android 13 and older
Some players use a dedicated USB driver rather than the ordinary system route. Compatibility depends on the app, phone and DAC; it is not a universal guarantee for every older Android version. Our Android comparisons distinguish the editions and documented capabilities.
The speaker and Bluetooth
Built-in outputs and Bluetooth have their own processing paths. Bluetooth also negotiates a wireless codec. A source-rate label does not establish the final wireless format. See what the player controls over Bluetooth.
How to check
A DAC with a rate display is the simplest check. In MP95, Settings → Sound → Hi-Fi shows the live Output line: the rate the device actually runs at, and whether anything is processing.
Frequently asked questions
Is 48 kHz resampling audible?
With a good resampler, rarely. The point of avoiding it is that the file reaches the DAC unchanged.
Does rooting help?
System modifications can change audio behaviour, but are not required for ordinary playback. Android 14’s USB APIs still depend on supported device capabilities; rooting is not a universal solution.