0
我有一個簡單的WinForms應用程序(編譯爲32Bit)與一個自定義WPF控件,承載MediaElement。下面的代碼可以在Windows 7(64位)下完美播放視頻,但在Vista和XP下觸發MediaFailed事件並顯示消息「Media failed to download」。Windows XP和Vista上的MediaElement vs 7
`
this.MediaElement.LoadedBehavior = System.Windows.Controls.MediaState.Manual;
this.MediaElement.UnloadedBehavior = System.Windows.Controls.MediaState.Manual;
this.MediaElement.Source = new System.Uri(@"C:\Video\Video.mp4", System.UriKind.Absolute);
this.MediaElement.Position = System.TimeSpan.FromSeconds(20);
this.MediaElement.Play();
`
視頻是罰款和在Windows Media Player中播放所有三個操作系統的。該視頻是H.264/MPEG-4/AVC編碼的。這可能是一個DirectShow過濾器的問題?如果沒有,我還能看到什麼才能讓這個運行?
謝謝。我現在就試試看。順便說一下,您是否知道如何從RoutedEventArgs中提取有關失敗的更詳細信息。這是我第一次與WPF合作,所以我最初的搜索並不富有成效。 – 2012-01-27 09:19:55
有沒有辦法限制MediaElement使用特定的過濾器? – 2012-01-31 11:06:06
是的,但它並不特別容易。您需要自己在代碼中構建directshow過濾器圖。要做到這一點,你需要使用wpfmediakit而不是mediaelement。 http://wpfmediakit.codeplex.com/。然後爲了構建filtergraph,你需要directshow.net http://sourceforge.net/projects/directshownet/。這將是一項複雜的任務。或者如果您只是在一臺機器上運行您的應用程序,那麼您可以使用編解碼器優先級工具手動調整編解碼器優先級(谷歌將在此處幫助) – Anton 2012-01-31 22:08:43