我有两台电脑 当我在第一个代码中运行我的代码时,一切都很好,视频正在播放 当我在第二台计算机上运行我的代码时,它会抛出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()
答案 0 :(得分:1)
答案 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标记