2010-05-30 89 views
0

溢出。我有一个应用程序应该通过DirectShowSource转换视频。
我有一个复选框,它启用了一个名为“btnviewcrop”的按钮,它显示了一个名为crp.vb的新窗体,用于裁剪/剪切视频中的像素。VB.NET - 无法使视频预览工作

现在,我有一个Panel1,我想设置为所有者(视频绘图表面),但是当我将其设置为打开时,应用程序崩溃(错误:对象引用未设置为对象的实例)。我不明白如何解决它。

这里是我的按钮代码:

Imports Microsoft.DirectX.AudioVideoPlayback 
Private Sub btnviewcrop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnviewcrop.Click 
    Me.ShowInTaskbar = False 
    Me.Enabled = False 
    crp.Show() 
    Dim cropperv As Video 
    cropperv.Owner = crp.preview 'VS2010 reports that cropperv has been used before being assigned a value' 
    cropperv.FromFile(labinputfile.Text, True) 
    cropperv.Play() 
End Sub 

回答

0

我不认为你曾经分配什么cropperv。您的意思是

Dim cropperv As New DirectX.AudioVideoPlayback 
+0

不,我直接从DevX源代码中提取这个,并且改为AudioVideoPlayback,VS2010报告预期的类型是'Audio','Video'或'StateFlags'。 我忘了提及我在.NET框架4.0工作,是的,我修复了不兼容的框架问题。 (我已经有一部分程序成功地获得了高度,宽度,帧率和长度。) – 2010-05-31 12:03:15

+0

@Yiu:我不知道这些类中的任何一个是做什么的。我的观点不是课程名称,而是缺少“新”。 – 2010-05-31 12:12:24

+0

啊,我看到现在做了什么。我需要将它变暗为“新”实例,因为它不是一个变量,而是一个对象。 – 2010-06-01 12:07:35

0

好一点,如果我这样做:

Dim cropperv As New Video(labinputfile.Text, True) 
cropperv.Owner = crp.preview 
cropperv.Play() 

然后,所有的工作了罚款之外所做的调整需求。 我很感谢Matti的帮助。