2017-03-07 80 views
0

我有一個基於XAML的Windows 10 UWP應用程序,它使用MediaElement來播放視頻。出於分析目的,當用戶播放視頻時,我想跟蹤搜索操作的開始和結束位置。在mediaelement中搜索的軌道開始和結束位置[UWP]

我能找到的唯一事件是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

你可以添加你的源代碼。因爲'CurrentStateChanged'正在爲我射擊。從那裏你可以使用'mediaElement.Position'獲得開始位置 – Archana

+0

@Archana:我已經添加了我正在使用的代碼。但其中沒有太多內容。這隻給出了結束位置而不是開始位置。我在這裏錯過了什麼嗎? – Ferdin

+0

你從哪裏開始播放音樂? – Archana

回答

0

當您開始尋找時,默認的傳輸控件不會引發任何事件。爲了得到這個,你可以修改它們,以便引發這樣的事件。

那裏在https://docs.microsoft.com/en-us/windows/uwp/controls-and-patterns/custom-transport-controls
定製的移動控制的文檔,這些數據顯示瞭如何才能到Slider的編程訪問用於搜索。您可以添加適合事件的處理程序(可能是DragStarting,HoldingManipulationStarted?),然後記錄當前位置。

+0

感謝您的回覆。我嘗試了相同的功能,但是在尋找時不會調用DragStarting,Holding和ManipulationStarted。我能找到的唯一事件是ValueChanged,它可以提供開始和結束的位置。但即使在播放視頻時也會調用此事件。我如何區分尋求視頻遊戲? – Ferdin

+0

@Ferdin你可以結合ValueChanged和Touch Up/Down事件來獲得你的邏輯嗎? –

相關問題