当应用程序从.exe启动时,WPF MediaElement不播放视频

本文关键字:MediaElement WPF 播放 视频 应用程序 exe 启动 | 更新日期: 2023-09-27 18:06:02

我已经为我的应用程序设置了一个带有视频的MediaElement作为窗口背景。它工作,但只有当我从Visual Studio启动程序时。如果我尝试从构建的。exe启动它,MediaElement中的视频将无法加载,背景仍然是黑色的。这是我的代码:

<Window.Background >
    <VisualBrush>
        <VisualBrush.Visual>
            <MediaElement Source="Resources/BF4R.wmv" LoadedBehavior="Play" IsMuted="True" MediaEnded="BGRAIN_MediaEnded" ></MediaElement>
        </VisualBrush.Visual>
    </VisualBrush>
</Window.Background>

这些是BF4R.wmv属性

Build Action: Content

复制到输出目录:始终复制

当应用程序从.exe启动时,WPF MediaElement不播放视频

当本地应用程序可以访问特定的资源,但已安装的版本不能,通常只有几个可能的原因:

1)资源没有正确部署:

为了确保资源被部署,通常应该将它们的Build Action设置为Content,并将Copy To Output Directory设置为Copy always。我看你已经这样做了。如果您正在使用项目Properties页面的Publish选项卡来发布您的应用程序,那么通过单击相关按钮,验证您的资源已列出并设置为 application Files对话框窗口中包含

2)在部署应用程序时,无法通过文件路径到达资源:

使用以下格式的文件路径(来自MSDN上的WPF页面中的打包uri)是一种良好的做法:

下面的示例显示了位于引用程序集的项目文件夹的子文件夹中的XAML资源文件的包URI。

pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml 

那么在你的例子中,这更像是:

Source="pack://application:,,,/YourAssemblyName;component/Resources/BF4R.wmv"