Directshow用于捕获设备的音频/视频

时间:2012-12-22 08:13:13

标签: vb.net directshow audiovideoplayback

Directshow音频/视频捕捉

VB.Net 中,我可以从连接的设备捕获视频,但无法接收任何声音,因为扬声器已连接。我可以从MediaPlayer播放电影和mp3。但是,困惑,为什么声音不会来。请指导我在以下代码中设置音频过滤器。请帮助,请在以下代码中进行相关更改...

    Public Function FindCaptureDevice() As IBaseFilter
        Debug.WriteLine("Start the Sub FindCaptureDevice")
        Dim hr As Integer = 0
        Dim classEnum As IEnumMoniker = Nothing
        'Dim classEnum1 As IEnumMoniker = Nothing
        Dim moniker As IMoniker() = New IMoniker(0) {}
        Dim source As Object = Nothing
        Dim devEnum As ICreateDevEnum = CType(New CreateDevEnum, ICreateDevEnum)

        hr = devEnum.CreateClassEnumerator(FilterCategory.VideoInputDevice, classEnum, 0)
        DsError.ThrowExceptionForHR(hr)
        Marshal.ReleaseComObject(devEnum)

        If classEnum Is Nothing Then
            Throw New ApplicationException("No video capture device was detected.\r\n\r\n" & _
                           "This sample requires a video capture device, such as a USB WebCam,\r\n" & _
                           "to be installed and working properly.  The sample will now close.")
        End If


        If classEnum.Next(moniker.Length, moniker, IntPtr.Zero) = 0 Then
            Dim iid As Guid = GetType(IBaseFilter).GUID
            moniker(0).BindToObject(Nothing, Nothing, iid, source)
        Else
            Throw New ApplicationException("Unable to access video capture device!")
        End If
        Marshal.ReleaseComObject(moniker(0))
        Marshal.ReleaseComObject(classEnum)
        Return CType(source, IBaseFilter)
    End Function

0 个答案:

没有答案