Repro : I've enabled SeekWhileScrubbing in my player. Despite that, if I try to seek using the timeline, the video will not move until I release the timeline (ie I release the left mouse button).
Expected : When SeekWhileScrubbing is true, the currently displayed frame should change when the user moves the timeline.
Workaround : I've implemented the 'proper' behavior by overriding all three scrubbing events, here the relevant code:
protected override void OnScrubbingStarted(TimeSpan scrubbingPosition)
// Save current state
_bufferingTimeBeforeScrubbing = ActiveMediaPlugin.BufferingTime;
_wasPausedBeforeScrubbing = (PlayState == MediaPluginState.Paused);
protected override void OnScrubbing(TimeSpan scrubbingPosition)
// Avoid spamming when no change.
// Override default behavior to fix 'seek while scrubbing' behavior.
ActiveMediaPlugin.BufferingTime = TimeSpan.FromTicks(1); // Try to reduce lag. Not very effective, but no negative impact (buffering occurs when resuming playback in any case).
ActiveMediaPlugin.Position = scrubbingPosition;
protected override void OnScrubbingCompleted(TimeSpan scrubbingPosition)
// Restore state.
ActiveMediaPlugin.BufferingTime = _bufferingTimeBeforeScrubbing;
Fix in SMF source : maybe modifying OnScrubbing to replace PlaybackPosition = scrubbingPosition; by SeekToPosition(scrubbingPosition) would work. But I haven't tried this, and have my doubts about the pausing of the video while scrubbing is taking place.