【问题标题】:List audio input devices - VBA列出音频输入设备 - VBA
【发布时间】:2011-03-31 02:30:07
【问题描述】:

我有一个复杂的 Access 数据库,我需要用它来做一些录音。我几乎可以使用外部解决方案完成所有工作,但我不得不从 Access 中选择我的输入设备。

我所需要的只是某种从 Windows 获取设备集合或其他东西的方法,我可以从那里获取它。 http://www.vbmonster.com/Uwe/Forum.aspx/vb/32848/listing-all-audio-devices 做了一些接近我正在寻找的东西,除了输出而不是输入。我知道没有非常简单的方法可以做到这一点,但我知道这是可能的,但我似乎找不到方法。

【问题讨论】:

    标签: winapi ms-access vba audio


    【解决方案1】:

    您链接的代码创建一个 SWbemObjectSet,然后列出其成员(声音设备)的属性。据我所知,您想要该对象但不想列出属性(“输出”)。

    如果正确,请创建一个函数,去除输出语句并仅返回 SWbemObjectSet 对象。

    Public Function getSoundDevices(Optional strComputer As String = ".") As Object
        Const cstrQuery As String = "Select * from Win32_SoundDevice"
        Dim objWMIService As Object 'TypeName = SWbemServicesEx '
    
        Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
        Set getSoundDevices = objWMIService.ExecQuery(cstrQuery, , 48)
        Set objWMIService = Nothing
    End Function
    

    然后调用该函数以使用 SWbemObjectSet 作为其他代码的输入。

    Public Sub test_getSoundDevices()
        Dim objSoundDevices As Object 'TypeName = SWbemObjectSet '
        Dim objDevice As Object 'TypeName = SWbemObjectEx '
        Set objSoundDevices = getSoundDevices()
        For Each objDevice In objSoundDevices
            '* do what you want for each sound device here *'
            Debug.Print "ProductName: " & objDevice.ProductName
        Next objDevice
        Set objDevice = Nothing
        Set objSoundDevices = Nothing
    End Sub
    

    【讨论】:

    • 这列出了我系统上的声卡。那不是我需要的。我需要的是在声卡上物理列出输入端口,例如麦克风、线路输入等。
    【解决方案2】:

    嗯,这不是最简单的问题 :-) 我认为您确实需要调用本机函数。

    大概是这样的:

    http://msdn.microsoft.com/en-us/library/ms645598(v=vs.85).aspx

    底部的VB实现。 祝你好运!

    【讨论】:

    • 我不明白为什么这么难!基本上每一个进行任何类型记录的软件都需要具有选择输入设备的功能。这真的没有什么不同。
    • 声明是在 VB.Net (VB 9) 中吗?
    • 它看起来并不比任何 Windows API 调用更难。您应该感谢您使用的开发平台可以通过使用 Windows API 调用来扩展功能。我不知道任何类似的数据库开发工具可以做到这一点(唯一真正与 Access 可比的工具是 FileMaker Pro 和 OpenOffice Base)。我很想知道他们是否可以。
    • 我并不害怕 Windows API 调用,我只是似乎找不到关于它们是什么以及如何使用它们的示例或文档。
    猜你喜欢
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 2011-04-04
    • 2021-11-19
    相关资源
    最近更新 更多