我有一个基于XAML的Windows 10 UWP应用程序,它使用MediaElement
来播放视频。出于分析目的,当用户播放视频时,我想跟踪搜索操作的开始和结束位置。
我能找到的唯一事件是SeekCompleted
,我可以使用mediaElement.Position
获取结束位置,但我无法找到识别起始位置的方法。搜索操作开始时也不会触发CurrentStateChanged
事件。我如何获得起始位置?
我正在使用的代码:
mediaElement.CurrentStateChanged += MediaElement_StateChanged;
mediaElement.SeekCompleted += MediaElement_SeekCompleted;
//Play the video
var mediaSource = MediaSource.CreateFromUri(new Uri(streamUrl));
var mediaPlaybackItem = new MediaPlaybackItem(mediaSource);
mediaElement.SetPlaybackSource(mediaSource);
public void MediaElement_StateChanged(object sender, RoutedEventArgs e)
{
var mediaElement = sender as MediaElement;
var state = mediaElement.CurrentState;
var position = mediaElement.Position;
}
public void MediaElement_SeekCompleted(object sender, RoutedEventArgs e)
{
var position = mediaElement.Position;
}
只有在搜索操作完成后才会调用这两个方法,因此我只能得到结束位置。我也需要开始位置。
答案 0 :(得分:0)
当您开始搜索时,默认传输控件不会引发任何事件。为了得到这个,你可以修改它们,以便引发这样的事件。
有关于https://docs.microsoft.com/en-us/windows/uwp/controls-and-patterns/custom-transport-controls的自定义传输控制的文档
这些展示了如何以编程方式访问用于搜索的Slider
。您可以为合适的事件添加处理程序(可能是DragStarting
,Holding
或ManipulationStarted
?),然后记录当前位置。