Feature description:
It has been 6+ years since Exoplayer has been stalling proper crossfade and Crossfade and seamless transitions between songs in a playlist remains pending.
I wanna suggest an alternative approach, if it isn’t too much trouble:
When “fake crossfade” is enabled:
- User presses [NEXT] button.
- Current song’s volume is lowered in the next 1-2 seconds from current volume to 0.
- Current volume is restored.
- Next song plays.
This would obviously add a 1-2 sec delay between pressing next and having the next song play, but instead of an abrupt transition, it’d be smooth.
Problem solved:
Currently, when we’re having a party or playing audio for multiple people on a speaker, it feels jarring to skip a song midway, mid beat, in case it is boring or whatever. If we press next and the volume fades down and then the next song starts, it feels smoother and polished.
Brought benefits:
It should be a set-and-forget setting for most people, but the overall listening experience will feel smoother due to the simulated crossfade, even if its not the real crossfade we all know and love.
Other application solutions:
Some resources:
- Similar description here: New Implementation of Crossfade (It's easier than you think) · Issue #889 · z-huang/InnerTune · GitHub
- A possible API to use: VolumeShaper | Android Developers
- These devs did it in react-native already, but hackily: feat: fade in/out effects by lovegaoshi · Pull Request #142 · lovegaoshi/azusa-player-mobile · GitHub
Additional description and context:
Maybe this feature is better called “Fade Out”?
Also, this is not a duplicate of the previous feature request because that asks to save time between two songs, while this one asks for a smoother fadeout of the current song, without concern for time taken.
Screenshots / Mockup:
That old mockup is still relevant, except name this “Fade Out” or “Fake Crossfade”.
However, a single toggle with a single preset time is also fine.