我正试图用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();谢谢你的帮助。
发布于 2014-08-27 05:22:03
VFW_E_UNSUPPORTED_STREAM是底层DirectShow层返回的错误代码,它表示无法构建回放管道。这反过来意味着某些流或格式无法被识别,并且通常缺少一个编解码器/过滤器组件来将数据读入解码和显示就绪状态。
正如您提到的MP4,您可能需要安装第三方过滤器/编解码器,因为DirectShow API中没有为此提供组件(GDCL滤波器应该在7+中修复这一点,而在旧系统中,您通常还需要第三方H.264解码器)。
https://stackoverflow.com/questions/25518384
复制相似问题