我在我们正在构建的应用程序中的一个新创建的窗口上放置了一个MediaElement,将它的源设置为wmv(也用gif尝试过),但是当我运行它时它不会显示在屏幕上.
然后我创建了一个新的独立项目,它都按预期工作.
这是有效的代码:
<MediaElement Source="pre-loader.wmv" LoadedBehavior="Manual" Name="Video" />
Run Code Online (Sandbox Code Playgroud)
这是不起作用的代码:
<MediaElement Source="pre-loader.wmv" LoadedBehavior="Manual" Name="Video" />
Run Code Online (Sandbox Code Playgroud)
我知道,它一样......我不明白吗?
我尝试了几种不同的方法,但得到了相同的结果.测试项目工程主要应用没有.
我在两个项目中使用相同的wmv文件,我也确保在两种情况下都复制到输出目录.设置为"如果更新则复制".
任何帮助都会......好吧,乐于助人
更新:我尝试使用snoop查找MediaElement,ActualWidth,ActualHeigt都为0,但height属性为140,width属性为NAN.此外,source = Default.
当我看到Blend中的屏幕时,我也得到"错误发生加载预览",但它并没有让我知道错误是什么.
首先要看的是你的项目资源."Source"属性表示您从相对URI获取视频,该视频仅在视频位于项目文件中时才有效.
默认情况下,MediaElement具有静默失败,这意味着除非您专门对其进行编程,否则它不会抛出异常.这通常在代码隐藏的Mediaelement的"MediaFailed"(VB)/"OnMediaFailed"(C#)属性中设置某种操作.我通常会在此事件中放入一个消息框,告诉用户视频无法加载.
在您遇到问题的项目中,您需要做的第一件事是进入项目属性,转到"资源"选项卡,然后将视频作为资源导入.然后,在解决方案资源管理器中,单击视频(在Resources文件夹中)和(如您所做)将其属性设置为BuildAction = None和CopyToOutput =如果更新则复制.不要将其设置为"嵌入式资源",否则MediaElement将无法播放它.它必须设置为"无".
然后,将mediaelement源更改为"Resources/pre-loader.wmv"
另一个(相当明显的)可能性是检查你是否在后面的代码中调用了mediaelement.play函数.如果您不需要显式控制播放/暂停/停止功能,我会将LoadedBehavior设置为"play".
希望有所帮助!如果您还有其他问题,请评论.