[英]How do I transfer a wpf media element to a new parent element without the media restarting?
我有一個媒體元素,可以在我的 WPF 應用程序中播放 MP4 文件。 我添加了一個最小化按鈕,將媒體元素傳輸到較小的畫布(最小化),但每次單擊該按鈕時媒體都會重新啟動。 我需要它從停止的地方繼續播放。 我該怎么做? 在單擊最小化按鈕之前暫停媒體允許它從它停止的地方繼續播放,但不能始終如一地工作。
public void ResumeMethod()
{
Show_MediaScreen.Position = Show_MediaScreen.Position;
stopWatch.Start();
dispatcherTimer.Start();
Show_MediaScreen.Play();
btnPlayTiny.Visibility = Visibility.Hidden;
btnPauseTiny.Visibility = Visibility.Visible;
btnPlay.Visibility = Visibility.Hidden;
btnPause.Visibility = Visibility.Hidden;
}
public void PauseMethod()
{
Show_MediaScreen.Position = Show_MediaScreen.Position;
if (stopWatch.IsRunning)
{
stopWatch.Stop();
}
// elapsedtimeitem.Items.Add(currentTime);
btnPauseTiny.Visibility = Visibility.Hidden;
btnPlayTiny.Visibility = Visibility.Visible;
btnPlay.Visibility = Visibility.Hidden;
btnPause.Visibility = Visibility.Hidden;
Show_MediaScreen.Pause();
}
private void ShowMediaScreen_MinimizeControl(object sender, RoutedEventArgs e)
{
Show_MediaScreen.Height = 200;
Show_MediaScreen.Width = 250;
VideoScreen.MouseEnter += new System.Windows.Input.MouseEventHandler(ShowMediaScreen_Hover_ON);
VideoScreen.MouseLeave += new System.Windows.Input.MouseEventHandler(ShowMediaScreen_Hover_OFF);
MyCanvas.Visibility = Visibility.Visible;
MyCanvas_Max.Visibility = Visibility.Collapsed;
try
{
PauseMethod();
FullSize.Children.Remove(Show_MediaScreen);
MyCanvas_Mini2.Children.Add(Show_MediaScreen);
ResumeMethod();
}
catch { }
btnPlay.Visibility = Visibility.Hidden;
btnPause.Visibility = Visibility.Visible;
}
我認為您可以使用MediaElement.Position
屬性來獲取或設置媒體播放時間的當前進度位置。
就像你說你想做什么一樣,你可以試試下面的代碼。
首先,創建一個TimeSpan
對象來保存當前位置:
TimeSpan currentPosition = new TimeSpan();
當用戶單擊最小化按鈕時,您需要獲取位置:
currentPosition = YOUR_MEDIA_ELEMENT.Position;
然后,當您將媒體元素傳輸到較小的畫布時:
YOUR_MEDIA_ELEMENT.Position = currentPosition;
有關MediaElement.Position
屬性的更多信息,您可以閱讀MSDN 文檔。
默認情況下, MediaElement
在卸載(即從其父級中刪除)時關閉媒體並從內存中釋放視頻。
將MediaElement.UnloadedBehavior
屬性設置為MediaStatue.Manual
以在不停止視頻的情況下將其從其父級中刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.