private void seekWorker_DoWork(object sender, DoWorkEventArgs e)
{
if (isCancelled)
return;
var newPosition = (double)e.Argument;
Logger.Debug("Performing seek to " + newPosition);
//bool wasMuted = mediaPlayer.settings.mute;
mediaPlayer.settings.mute = true;
mediaPlayer.Ctlcontrols.currentPosition = newPosition;
//if (wasPaused)
//{
mediaPlayer.Ctlcontrols.play();
//}
Thread.Sleep(500); // sleep some time so we seek
// if we don't sleep long enough, a bunch of play requests queue up. when the user stops draggin, those play requests get fulfilled and the video jumps all over the place.
//if (wasPaused)
//mediaPlayer.Ctlcontrols.pause();
/*
// wait for seek to actually happen
* 6/29/12: Why is this code REMED out?
while (Math.Abs(mediaPlayer.Ctlcontrols.CurrentPosition - newCoordinate) > 1)
{
Application.DoEvents();
}
*/
/* 6/29/12: NOW we determine whether to resume on the MouseUp event of the tickboxes
// go back to being paused if it was paused originally
if (wasPaused && forcePlay == false)
{
mediaPlayer.Ctlcontrols.pause();
}
*/
//if (wasMuted == false)
//mediaPlayer.settings.mute = false; // if we weren't muted before, let's unmute
e.Result = newPosition;
}