WPF MediaElement ЗАМОРАЖИВАЕТ при установке позиции в конец видео

Я реализовал простой видеоплеер. В нем, среди прочего, есть MediaElement и Slider. В любом случае, когда я сдвигаю ползунок до упора вправо и устанавливаю MediaElement.Position в самый конец видео, видео ЗАМОРАЖИВАЕТСЯ на последнем кадре видео и не возобновляется или не отвечает на команды паузы/воспроизведения, пока я загрузить другое видео в MediaElement.

Я применил небольшой хак, чтобы изменить значение позиции только на числа, которые находятся не менее чем в 20 миллисекундах от конца видео, и проблема исчезла:

if ( _mediaElement.HasVideo &&
     _mediaElement.NaturalDuration.HasTimeSpan &&
     (_mediaElement.NaturalDuration.TimeSpan.TotalMilliseconds - e.NewValue) > 20)
{
     _mediaElement.Position = new TimeSpan(0, 0, 0, 0, (int) e.NewValue);
}

Чего я не понимаю, так это почему видео зависает на последнем кадре? Является ли это ошибкой в ​​элементе управления MediaElement или есть другой способ обойти эту проблему?

Я нашел сообщение трехлетней давности, описывающее, похоже, ту же проблему, и их решением был обновленный драйвер nVidia. У меня самый последний драйвер nVidia, но проблема все еще есть. Я предполагаю, что приведенный выше хак работает, но кажется немного странным, что видео просто так зависает.


person Curtis    schedule 18.04.2013    source источник
comment
проверьте это stackoverflow.com/questions/4189660/   -  person Mustafa Ekici    schedule 18.04.2013


Ответы (1)


Пожалуйста, проверьте, есть ли у вас Выгруженное поведение установлено значение Close. Попробуйте установить Manual. Я думаю, что Close подразумевает выгрузку видео и, следовательно, ваши дальнейшие действия не имеют никакого эффекта.

<MediaElement Source="media\numbers.wmv" Name="myMediaElement" 
 Width="450" Height="250" LoadedBehavior="Manual" UnloadedBehavior="Manual" />
person Isantipov    schedule 30.04.2013