如何在C#上播放视频

时间:2014-04-25 08:00:20

标签: c# .net winforms

我有两台电脑 当我在第一个代码中运行我的代码时,一切都很好,视频正在播放 当我在第二台计算机上运行我的代码时,它会抛出DirectXException无法解决。

我播放视频的代码部分是:

string path= Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"Photos\test.mp4");

var ofd = path;
label3.Text = ofd;
video.Owner = panel2;
panel2.Size = new System.Drawing.Size(634, 507);
video.Ending += new EventHandler(videocountdown_Ending);
video.Size = new System.Drawing.Size(634, 507);

异常的细节是:

Error Code : -2147220891
Error String : VFW_E_UNSUPPORTED_STREAM
StackTrace :    in Microsoft.DirectX.AudioVideoPlayback.Video.Open(String fileName, Boolean autoRun)
   in Microsoft.DirectX.AudioVideoPlayback.Video..ctor(String fileName, Boolean autoRun)
   in WinFormCharpWebCam.mainWinForm.pictureBox1_Click(Object sender, EventArgs e) στο c:\ArtWedding\Form1.cs:γραμμή 133
   in System.Windows.Forms.Control.OnClick(EventArgs e)
   in System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   in System.Windows.Forms.Control.WndProc(Message& m)
   in System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   in System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   in System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   in System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   in System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
   in System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   in System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   in System.Windows.Forms.Application.Run(Form mainForm)
   in WinFormCharpWebCam.Program.Main() στο c:\ArtWedding\Program.cs:γραμμή 18
   in System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
   in System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   in Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   in System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   in System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   in System.Threading.ThreadHelper.ThreadStart()

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

来自this网站:

VFW_E_UNSUPPORTED_STREAM 0x80040265

无法播放文件:不支持该格式。

您尝试重现的视频格式是什么?

答案 1 :(得分:0)

您可以播放媒体播放器控件

将Windows Media Player控件添加到工具箱

在“文件”菜单上,单击“新建项目”。

在“新建项目”对话框中,单击“Windows窗体应用程序”,然后单击“确定”。

将打开一个新的Windows窗体项目。

右键单击“工具箱”,然后单击“选择项目”。

将打开“自定义工具箱项”对话框。

在“COM组件”选项卡上,选中“Windows Media Player”复选框,然后单击“确定”。

Windows Media Player控件显示在当前的“工具箱”选项卡上。

将Windows Media Player控件添加到工具箱时,Visual Studio会自动添加对两个库的引用:AxWMPLib和WMPLib。下一步是将控件添加到Windows窗体。

将Windows Media Player控件添加到Windows窗体

将Windows Media Player控件从“工具箱”拖动到Windows窗体。

在“属性”窗口中,将Dock属性设置为“填充”。 您可以通过单击中心方块来执行此操作。

双击表单的标题栏,在代码编辑器中添加默认的Load事件。 将以下代码添加到Form_Load事件处理程序,以在应用程序打开时加载视频。

此代码将Windows Media Player的URL设置为您指定的媒体文件。设置URL属性时,Windows Media Player将自动开始播放,因为默认情况下autoStart属性为true。

按F5键运行代码。

当应用程序打开时,双击表单的标题栏,将表单大小更改为全屏。

您还可以将WebBrowser添加到表单,然后使用HTML5标记