toMediaSessionState
Reads a snapshot and a progress sample into the state a platform session wants.
The item's own io.github.yuroyami.kiteplayer.MediaItem.title, artist and album come first, then the container's tags in PlayerSnapshot.metadata, and the file name stands in when neither names a title. Next and previous follow the play order, so they answer for what the listener is actually hearing rather than for the list order, and looping the whole queue makes both true. Opening counts as buffering, and idle, ended and failed all count as stopped.