1

我正在尝试使用 DirectX 为 MP4 创建一个视频播放器,它可以在我的计算机上运行,​​但我在上网本上尝试了我的应用程序,这个错误代码以try{...}catch(Exception e){...}.

Error in the application.
-2147220891 (VFW_E_UNSUPPORTED_STREAM)
   at Microsoft.DirectX.AudioVideoPlayback.Video.Open(String fileName, Boolean autoRun)
   at Microsoft.DirectX.AudioVideoPlayback.Video..ctor(String fileName, Boolean autoRun)
   at Video_Player.Player.PeekWind_Load(Object sender, EventArgs e)

这是我的一些代码。

Microsoft.DirectX.AudioVideoPlayback.Video video = new Microsoft.DirectX.AudioVideoPlayback.Video("C:\TestVideo.mp4", true);
video.Owner = ViewPane;
video.Size = new Size(Video.DefaultSize.Width, Video.DefaultSize.Height);
video.Audio.Volume = -2500;
video.Play();

感谢您提供的任何帮助。

4

1 回答 1

1

VFW_E_UNSUPPORTED_STREAM底层 DirectShow 层返回的错误码,表示无法构建播放管道。这反过来意味着无法识别某些流或格式,并且通常缺少编解码器/过滤器组件来将数据读入解码和呈现就绪状态。

正如您提到的 MP4,您可能需要安装第三方过滤器/编解码器,因为普通 Windows 在 DirectShow API 中没有为此提供组件(GDCL 过滤器应该在 Windows 7+ 中解决此问题,在旧系统中,您通常还需要第三方 H .264 解码器)。

于 2014-08-27T05:22:03.973 回答