pub fn resolve_skip_action(
is_next: bool,
is_background_audio: bool,
position: f64,
duration: Option<f64>,
) -> SkipActionExpand description
Decide whether a lockscreen skip advances the queue or scrubs the current item.
Music gets queue advance, which is what the buttons look like they do. A video whose audio is playing through a background-audio handoff (UR-040) gets a relative scrub instead: there is no meaningful “next track” inside a film, and jumping to the next episode because the user wanted to re-hear a line is a much worse outcome than a scrub.
is_background_audio is the whole test, and it is sufficient on its own —
the handoff exists only for video, and an episode played through it reports
MediaType::Audio, so media type cannot distinguish this case (see the note
at PlayerController::auto_advance_to_next_episode).
Clamped to [0, duration] so a skip near either end lands in the item rather
than at a negative offset or past the end, which some backends treat as EOF
and would turn a scrub into an unintended advance.
TRACES: UR-040, UR-006 | DR-201