我们有一个桌面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编解码器即使安装成功也没有显示出来?
谢谢你的时间和帮助。
发布于 2016-04-06 15:29:15
代码片段是正确的。DirectShow本身(其智能连接)也在寻找类似的编解码方式。
典型的问题是,有两个独立的列表:32位编解码器和64位编解码器。当您安装32位编解码器时,64位列表没有它,反之亦然.
当您枚举编解码器时,您正在遍历与代码的位数相匹配的列表。“已安装但不可见”编解码器在另一个列表中是在您的情况下,并且具有不同的位数。
https://stackoverflow.com/questions/36454631
复制相似问题