2016-04-06 14 views
1

Wir haben eine Windows-Desktop-App (nur 32 Bit), die eine Liste der im Computer installierten Codecs anzeigt.Fehlender Codec beim Anzeigen mit DirectShow

Aber wir finden, dass manchmal diese Liste nicht jeden Codec installiert ist, erhalten, wie wir Fälle gefunden haben - ohne Besonderheit - wo wir installieren h264vfw Codecs und die Installation erfolgreich durchgeführt. Danach zeigt die Liste jedoch nicht den Codec in der Liste.

Hier ist der Code, den wir die volle Codecs Liste zu erhalten verwenden:

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 

Wie könnten wir die vollständige Codec-Liste aller Codec installiert bekommen? Warum h264vfw Codec wird nicht angezeigt, auch wenn es erfolgreich installiert?

Vielen Dank für Ihre Zeit und Ihre Hilfe.

Antwort

1

Das Code-Snippet ist ungefähr richtig. DirectShow selbst (seine Intelligent Connect) sucht nach Codecs ähnlich.

Das typische Problem ist, dass es zwei separate unabhängige Listen gibt: 32-Bit-Codecs und 64-Bit-Codecs. Wenn Sie 32-Bit-Codec installieren, enthält die 64-Bit-Liste es nicht und umgekehrt.

Wenn Sie Codecs aufzählen, gehen Sie durch die Liste, die der Bitness Ihres Codes entspricht. "Installierte aber unsichtbare" Codec ist in Ihrem Fall in der anderen Liste und von einer anderen Bissigkeit.

+0

Vielen Dank für Ihre Antwort. Obwohl unsere App nur im 32-Bit-Modus funktioniert, werden wir diese Möglichkeit prüfen! Sobald wir können, werde ich aktualisieren/beantworten, wenn dies der Grund war! Danke nochmal. – Unapedra