【发布时间】:2017-03-07 21:14:26
【问题描述】:
我有一个基于 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;
}
只有在查找操作完成后才会调用这两种方法,因此我只能获得结束位置。我也需要起始位置。
【问题讨论】:
-
你能添加你的源代码吗?因为
CurrentStateChanged正在为我开火。从那里您可以使用mediaElement.Position获得起始位置 -
@Arcana:我已经添加了我正在使用的代码。但是里面没有多少。这仅给出结束位置而不给出开始位置。我在这里错过了什么吗?
-
你从哪里开始播放音乐?
-
@Arcana:我只需单击一个按钮即可播放视频。我也包含了那段代码
-
希望你调用 play() 方法。当你开始玩
CurrentStateChanged事件应该触发。暂停音乐时至少会触发吗?