是否可以使用WPF的MediaElement控件播放从UDP / RTSP流式传输的视频?在我的测试过程中,我试图将包含UDP流的URI传递给MediaElement播放器,但是当我启动应用程序时,媒体播放器就像没有媒体源一样空白 . 这是我的示例代码:
MainWindow.xaml.cs:
public partial class MainWindow: Window
{
public MainWindow()
{
InitializeComponent();
VideoMediaElement.Source = new Uri("udp:\\\\@12.3.4.567:890");
VideoMediaElement.Play();
}
}
MainWindow.xaml:
<Window x:Class="MyApplication.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="300" Width="300">
<Grid>
<MediaElement Margin="5,5,5,5" Grid.Row="1" x:Name="VideoMediaElement" LoadedBehavior="Manual" />
</Grid>
我有什么明显的遗漏吗?我已经使用存储在我的文件系统上的视频测试了这个设置,它没有任何问题 - 它只是不想工作的流媒体 .
如果使用MediaElement无法做到这一点,我愿意接受我可以使用的控件建议 . 但是,我需要一个纯粹的WPF控件,并且不依赖于任何WinForms互操作 . 任何建议表示赞赏 .
更新:在为"MediaFailed"事件创建处理程序后,我能够收到此错误:"Media file download failed",带有HResult 0xC00D0FEA的System.Runtime.InteropServices.COMException内部异常 . 我引用了这个:MediaPlayer cannot play file names without an extension并尝试对注册表进行一些更改,但是当我获得更多信息时,他们不会继续更新此线程 .
2 回答
请参阅FFME,它基于FFmpeg,几乎是MediaElement的替代品 .
经过大量的研究,似乎我试图做的事情可能是不可能的 . WPF MediaElement控件(和Windows Media Player)似乎支持通过网络播放视频,但不支持从流中播放视频 . 请参阅MSDN上的以下主题:https://social.msdn.microsoft.com/Forums/vstudio/en-US/e90b7e73-62b2-40b2-a725-4b60e02d65a1/play-video-stream-in-wpf?forum=wpf
我还在寻找一个可以播放视频流的WPF控件,但我还没有找到任何东西 .