我正在设计和测试一个看起来像下图的MP4查看器控件,这是一种简单的列表细节布局。用户从列表中选择一个项目,并且可以在右侧播放电影。我正在使用WPF 4.5.x堆栈中的MediaElement
控件。在调试时,此控件可以很好地工作。在调试器外部,MediaElement
控件不会播放任何内容。相反,一旦调用PlayerMediaElement.Play()
方法(在详细控制的代码隐藏中),程序就会使一个CPU内核饱和,其中50%的利用率被描述为系统开销:
MediaElement控件的XAML如下所示:
<MediaElement
Source="{Binding MovieFile}"
Loaded="PlayerMediaElement_Loaded"
x:Name="PlayerMediaElement"
MediaOpened="Element_MediaOpened"
ScrubbingEnabled="True"
LoadedBehavior="Manual" UnloadedBehavior="Manual"
/>
绑定指向包含文件完整路径的字符串。 &#34; C:\ MyMovies \ Movie.MP4&#34;,那种事。
其中包含MediaElement
的控件的代码隐藏包含Microsoft推荐的用于手动传输控制的代码;事件和计时器等等。我无法理解为什么它无法在调试会话之外工作。电影根本无法播放,数据上下文切换完全折叠MediaElement
控件。
我应该寻找什么?