2016-04-06 14 views
1

コンピュータにインストールされているコーデックのリストを表示するデスクトップWindows(32ビットのみ)アプリがあります。DirectShowのリストにコーデックがありません

しかし、私たちは特別な事情がなく、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コーデックが正常にインストールされても表示されないのですか?

ありがとうございました。

答えて

1

コードスニペットはほぼ正しいです。 DirectShow自体(Intelligent Connect)はコーデックを同様の方法で探します。

一般的な問題は、32ビットコーデックと64ビットコーデックの2つの独立した独立したリストがあることです。 32ビットコーデックをインストールすると、64ビットのリストにはそれがなく、その逆もあります。

コーデックを列挙するときに、コードのビット数に一致するリストを歩いています。 "インストールされているが目に見えない"コーデックは、別のリストにあり、異なるビット数の場合があります。

+0

ありがとうございました。私たちのアプリは32ビットモードでしか動作しませんが、その可能性をチェックします!これが原因であれば、できるだけ早く更新/回答します!ありがとうございました。 – Unapedra

関連する問題