2010-09-08 27 views
1

我寫了一個WPF應用程序(在Visual C#2010 Express中),它有2個窗口。第一個具有各種按鈕,另一個使用MediaElement控件顯示視頻。當按下某個按鈕時,如果它已經播放,則播放或停止與其關聯的視頻。通過Windows Media Player在C#應用程序中播放視頻。是否有穩定,體面的解決方案?

在我的機器(Windows 7中,好的顯卡,內存地段等),這種運行良好。我遇到的唯一問題是,當連接到調試器時,它非常不穩定,但當正常運行時,這些問題就會消失。

不幸的是,當一個更強大的XP機器的視頻在1-2fps運行上運行。儘管視頻在Windows Media Player中運行良好,但這一點很重要。

似乎有相當多的爲MediaElement控件(更不用提什麼可以玩的不一致)的表現不佳的報告,所以我決定看看一些替代品。

我試過一個免費的庫調用WPF MediaKit(http://wpfmediakit.codeplex.com),我認爲它可能會有一些效果,但是雖然我已經在XP機器上工作,但堅決拒絕在我的開發計算機上顯示視頻相同的代碼。我仍然希望能夠這樣工作,但我不確定它會幫助它在幕後仍然使用MediaElement控件。

然後我嘗試使用wmp.dll COM控件(Windows窗體而不是WPF),甚至使用最簡單的應用程序(新的Windows Form項目,WMP控件添加到窗體,以及1行代碼來設置加載URL)我有奇怪的行爲。通過附加調試器,它可以在多個顯示器上工作,但有時在開始播放時,它會在前幾幀中重複出現斷斷續續的問題,並且唯一的辦法是將其移出到另一個顯示器。如果我沒有使用調試器,我似乎沒有得到口吃問題,但只要將視窗移動到輔助顯示器,視頻只顯示在主顯示器上,它會變黑。

所以我的問題是有沒有人經歷過這樣的上述和/或有一個體面的解決方案,它什麼?如果找到一個能夠在調試器連接和不連接的情況下一致地工作,那將是特別好的!

回答

0

WPF MediaKit不使用MediaElement的幕後,而是使用D3DImage interop類爲WPF提供高性能視頻。

WPF在XP一直在性能方面的一擊或錯過。您可能需要查看呈現層以確保WPF完全硬件加速。還要確保你有最新的視頻驅動程序可用,並且GPU有能力。

-Jer

+0

此外,檢查您是否安裝了DirectShow編解碼器。請參閱https://github.com/Sascha-L/WPF-MediaKit/wiki/FAQ – xmedeko 2017-09-03 21:06:20

相關問題