2013-04-18 3 views
1

간단한 비디오 플레이어를 구현했습니다. 여기에는 MediaElement와 Slider가 있습니다. 어쨌든 슬라이더를 오른쪽으로 끝까지 움직여서 MediaElement.Position을 비디오의 맨 끝으로 설정하면 비디오의 마지막 프레임에서 비디오가 정지되고 다시 시작할 때까지 일시 중지/재생 명령에 응답하지 않습니다. 다른 비디오를 MediaElement에로드하십시오.WPF 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 컨트롤의 버그입니까? 아니면이 문제를 해결할 수있는 다른 방법이 있습니까?

3 년 전 동일한 문제가있는 것으로 보이는 게시물을 발견했으며 솔루션은 업데이트 된 nVidia 드라이버였습니다. 최신 nVidia 드라이버가 있고이 문제가 여전히 있습니다. 나는 위의 해킹이 작동한다고 생각하지만 비디오가 그런 것처럼 잠길 것 같아서 이상하게 보입니다.

+1

확인이를 http://stackoverflow.com/questions/4189660/why-does-wpf-mediaelement-not-work-on-secondary-monitor –

답변

1

Unloaded Behavior 속성이 Close으로 설정되어 있는지 확인하십시오. Manual으로 설정하십시오. 내 생각에 Closeimplies 비디오를 내리면 더 이상 수행 할 수 없습니다.

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