在VB6中调用相机显示视频可以使用DirectShow组件库来实现。下面是一个简单的示例代码:

  1. 首先,在VB6中创建一个新的窗体(Form),并添加一个PictureBox控件和一个Command按钮控件。

  2. 在窗体的代码模块中添加以下代码:

Option Explicit

Private m_FilterGraph As IFilterGraph2
Private m_SampleGrabber As ISampleGrabber
Private m_MediaControl As IMediaControl
Private m_MediaEvent As IMediaEvent

Private Sub Form_Load()
    Set m_FilterGraph = New FilterGraph
    Set m_SampleGrabber = New SampleGrabber
    Set m_MediaControl = m_FilterGraph
    Set m_MediaEvent = m_FilterGraph

    m_FilterGraph.RenderFile "C:\path\to\video.avi" ' 替换为实际视频文件路径

    m_SampleGrabber.SetCallback Me

    m_MediaControl.Run
End Sub

Private Sub Form_Unload(Cancel As Integer)
    m_MediaControl.Stop
    Set m_FilterGraph = Nothing
    Set m_SampleGrabber = Nothing
    Set m_MediaControl = Nothing
    Set m_MediaEvent = Nothing
End Sub

Private Sub Command1_Click()
    m_MediaControl.Stop
    Unload Me
End Sub

Private Sub SampleGrabber_SampleCB(SampleTime As Double, pSample As IPin)
    Dim pBuffer() As Byte
    Dim pVideoInfo As VIDEOINFOHEADER
    Dim pMediaType As AM_MEDIA_TYPE

    With m_SampleGrabber
        .GetCurrentBuffer pBuffer
        .GetConnectedMediaType pMediaType

        CopyMemory pVideoInfo, ByVal pMediaType.pbFormat, Len(pVideoInfo)

        Dim lWidth As Long
        Dim lHeight As Long
        Dim lStride As Long

        lWidth = pVideoInfo.bmiHeader.biWidth
        lHeight = pVideoInfo.bmiHeader.biHeight
        lStride = ((lWidth * 24 + 31) And &HFFFFFFE0) \ 8 ' 计算行宽

        Dim hDC As Long
        Dim hBmp As Long
        Dim hOldBmp As Long

        hDC = GetDC(Picture1.hWnd)
        hBmp = CreateDIBSection(hDC, pVideoInfo.bmiHeader, DIB_RGB_COLORS, ByVal 0&, ByVal 0&, 0)
        hOldBmp = SelectObject(hDC, hBmp)

        CopyMemory ByVal pVideoInfo.bmiHeader.biSizeImage, pBuffer(0), lStride * lHeight ' 复制图像数据

        StretchDIBits hDC, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, 0, 0, lWidth, lHeight, pBuffer(0), pVideoInfo.bmiHeader, DIB_RGB_COLORS, SRCCOPY

        SelectObject hDC, hOldBmp
        DeleteObject hBmp
        ReleaseDC Picture1.hWnd, hDC
    End With
End Sub
  1. 运行程序,点击Command按钮即可开始显示相机视频
vb6调用相机显示视频

原文地址: http://www.cveoy.top/t/topic/iC1X 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录