Решение найдено. В XAML’е в тег элемента нужно добавить свойство
ScrubbingEnabled="True"
.
Есть медиаэлемент, в нём ролик AVI. По клику на одну кнопку выполняется метод
mediaElement.Play();
, на другую —
mediaElement.Pause();
Есть слайдер, значение которого используется для выставления позиции видеоролика.
public DispatcherTimer _timer = new DispatcherTimer();
public int waitnum = 3000;
double TotalTime = 0;
public MainWindow()
{
_timer.Interval = TimeSpan.FromSeconds(1);
_timer.Tick += new EventHandler(_timer_Tick);
InitializeComponent();
}
void _timer_Tick(object sender, EventArgs e)
{
double tPass = mediaElement1.Position.TotalSeconds;
slider.Value = tPass;
}
private void mediaElement1_MediaOpened(object sender, RoutedEventArgs e)
{
slider.Maximum = mediaElement1.NaturalDuration.TimeSpan.TotalSeconds;
}
private void slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
_timer.Stop();
TimeSpan ts = TimeSpan.FromSeconds(slider.Value);
mediaElement1.Position = ts;
textBox.Text = ts + " / " + mediaElement1.NaturalDuration;
_timer.Start();
}
. . .
Если нажать на «паузу» (выполняется
mediaElement.Pause();
) а потом сдвигать слайдер, то позиция видеоролика меняется, но кадр не обновляется. Как можно обновить кадр на паузе?