1

我们有一个桌面 Windows(仅限 32 位)应用程序,它显示了计算机中安装的编解码器列表。

然而,我们发现有时这个列表并没有安装每个编解码器,因为我们发现了一些案例 - 没有任何特殊性 - 我们安装了 h264vfw编解码器并且安装成功。但是,在那之后,列表不会在列表中显示编解码器。

这是我们用来获取完整编解码器列表的代码:

Dim DsDevice as DirectShowLib.DsDevice

Private Function LlistaVideoCodecs() As List(Of String)        
    LlistaVideoCodecs = New List(Of String)        
    Dim llista = DsDevice.GetDevicesOfCat(FilterCategory.VideoCompressorCategory)
       For Each oDevice As DsDevice In llista            
           If oDevice IsNot Nothing Then 
               LlistaVideoCodecs.Add(oDevice.Name)        
       Next        
    Return LlistaVideoCodecs    
End Function

我们如何获得所有已安装编解码器的完整编解码器列表?为什么h264vfw编解码器即使安装成功也不显示?

感谢您的时间和帮助。

4

1 回答 1

1

代码片段是正确的。DirectShow 本身(它的 Intelligent Connect)以类似的方式寻找编解码器。

典型的问题是有两个独立的列表:32 位编解码器和 64 位编解码器。安装 32 位编解码器时,64 位列表没有它,反之亦然。

当您枚举编解码器时,您正在浏览与您的代码位数匹配的列表。在您的情况下,“已安装但不可见”编解码器在另一个列表中,并且位数不同。

于 2016-04-06T15:29:15.623 回答