.net MediaElement未显示

.net MediaElement未显示,.net,wpf,.net,Wpf,我在我们正在构建的应用程序中新创建的窗口上放置了一个MediaElement,将其源设置为wmv(也尝试使用gif),但在运行它时,它不会显示在屏幕上 然后,我创建了一个新的独立项目,所有的工作都如预期的那样 这是有效的代码: <MediaElement Source="pre-loader.wmv" LoadedBehavior="Manual" Name="Video" /> 这是不起作用的代码: <MediaElement Source="pre-loader.wm

我在我们正在构建的应用程序中新创建的窗口上放置了一个MediaElement,将其源设置为wmv(也尝试使用gif),但在运行它时,它不会显示在屏幕上

然后,我创建了一个新的独立项目,所有的工作都如预期的那样

这是有效的代码:

<MediaElement Source="pre-loader.wmv" LoadedBehavior="Manual" Name="Video" />

这是不起作用的代码:

<MediaElement Source="pre-loader.wmv" LoadedBehavior="Manual" Name="Video" />

我知道,这是一样的。。。我不明白

我尝试了几种不同的方法,但得到了相同的结果。测试项目可以工作,但主应用程序不能

我在两个项目中使用相同的wmv文件,我还确保在这两种情况下都是复制到输出目录。如果较新,则设置为复制

任何帮助都是。。。好吧,帮帮忙

更新:我尝试使用snoop查找MediaElement,ActualWidth和ActualHeigt均为0,但height属性为140,width属性为NAN。 此外,源=默认值


当我在Blend中查看屏幕时,也会看到“加载预览时出错”,但它不让我知道错误是什么。

首先要查看的是您的项目资源。“Source”属性表示您从相对URI获取视频,该URI仅在视频位于项目文件中时有效

默认情况下,MediaElement有一个静默失败,这意味着它不会抛出异常,除非您对其进行专门编程。这通常是通过代码隐藏中Mediaelement的“MediaFailed”(VB)/“OnMediaFailed”(C#)属性中的某种操作设置的。我通常在这个事件中放一个消息框,告诉用户视频无法加载

在您遇到问题的项目中,您需要做的第一件事是进入项目属性,转到“资源”选项卡,然后将视频作为资源导入。然后,在解决方案资源管理器中,单击视频(在资源文件夹中),并(如您所做)将其属性设置为BuildAction=None和CopyToOutput=Copy(如果更新)。不要将其设置为“嵌入式资源”,否则MediaElement将无法播放它。必须将其设置为“无”

然后,将mediaelement源更改为“Resources/pre-loader.wmv”

另一个(相当明显的)可能性是检查是否在代码中调用mediaelement.play函数。如果不需要显式控制播放/暂停/停止功能,我会将LoadedBehavior设置为“播放”


希望有帮助!如果您还有任何问题,请发表评论。

在“项目属性”中检查两个项目的“平台标记”属性。有些编解码器只能在x86或x64模式下工作。

您有任何例外吗?您的应用程序是否缺少一些访问该文件的权限?@Martin,很抱歉我的回复被耽搁了。没有例外,它甚至不向输出窗口写入任何内容。我不确定你指的是什么权利。视频文件在项目中,我在哪里检查它是否有足够的权限显示?你能发布更多的XAML吗