WPF媒体元素视频源

4

我尝试在XAML代码中设置视频源,但视频无法播放:

<MediaElement x:Name="bgvideo" Width="800" Height="600"Source="/Videos/BG_LOOP_BIG.wmv" />

我试图在代码后端设置视频来源,但它仍无法播放。

bgvideo.Source = new Uri(@"pack://application:,,,/Videos/BG_LOOP_BIG.wmv", UriKind.Absolute);

或者
bgvideo.Source = new Uri(@"/Videos/BG_LOOP_BIG.wmv");

只有在视频源是绝对路径时才会播放。
bgvideo.Source = new Uri(@"C:\SomeFolder\Videos\BG_LOOP_BIG.wmv");

如何使用相对路径设置视频源?

3个回答

3
这对我很有用。添加LoadedBehavior="Manual"。
<MediaElement LoadedBehavior="Manual" x:Name="bgvideo" Width="800" Height="600" Source="Videos/BG_LOOP_BIG.wmv" />

然后在代码后台,你需要播放媒体。

bgvideo.Play()

您还需要在uri中去掉第一个'/'。

希望对您有所帮助。


我已经尝试了这个问题:我设置了LoadedBehavior="Manual"并在Loaded事件中加入了"bgvideo_Loaded"事件处理程序。我在bgvideo_Loaded方法中写了bgvideo.Play()。现在; 我删除了第一个斜杠,但仍然不工作 :( - Murat
你在bin/debug/Videos/里有wmv文件吗?如果你移除LoadedBehavior属性,它应该会自动播放而不需要调用Play()方法。 - PaulB
bin/debug里没有Video文件夹 :) 我复制了一下,现在可以用了 :) 非常感谢。你知道为什么Visual Studio不会把这个文件夹复制到bin/debug吗? - Murat
3
如果你在项目中添加一个名为 'Video' 的文件夹,然后将你的视频放入其中并将它的 'Copy to Output' 属性设置为 'copy',它会自动复制到输出文件夹。 - PaulB
该死。我遇到了相同的问题已经两个小时了。起初我以为是编解码器的问题。当删除第一个“/”斜杠时,Visual Studio 2010会显示错误,因为它不是项目的一部分。但现在它完美地工作了。只需删除第一个“/”即可。感谢您的帖子! - Nasenbaer

2
<MediaElement x:Name="bgvideo" Width="800" Height="600"Source="Videos/BG_LOOP_BIG.wmv" />

这也是可行的,你只需要将视频文件的属性设置为“复制到输出目录”,并选择“如果较新则复制”或“始终复制”。


1

去掉第一个斜杠:

:)

另外,据我所知,视频无法嵌入到程序集中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接