我们有一个桌面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 编解码器也没有显示?
感谢您的时间和帮助。
答案 0 :(得分:1)
代码段是正确的。 DirectShow本身(它的Intelligent Connect)以类似的方式寻找编解码器。
典型的问题是有两个独立的独立列表:32位编解码器和64位编解码器。安装32位编解码器时,64位列表没有它,反之亦然。
当您枚举编解码器时,您正在浏览与您的代码的位数相匹配的列表。 "已安装但不可见"编解码器在你的情况下在另一个列表中,并且具有不同的位数。