Como inicializar um TFilter com uma fonte de captura de vídeo conhecida sem usar TSysDevEnum.GetMoniker?

StackOverflow https://stackoverflow.com//questions/12695617

  •  12-12-2019
  •  | 
  •  

Pergunta

É possível criar/inicializar um objeto TFilter com uma fonte de captura de vídeo conhecida sem usar TSysDevEnum.GetMoniker(...)?

O nome da fonte de captura de vídeo e outros detalhes já são conhecidos e podem ser obtidos pelo GraphEdit Filter Browser.A intenção é acelerar a inicialização do TFilter e anexá-lo ao FilterGraph programaticamente.

Foi útil?

Solução

Não, você precisa fazer isso via apelido.Depende da classe COM real que suporta o filtro da fonte de vídeo, porém quase sempre não há um único CLSID e é impossível instanciá-lo sem usar o apelido.

Se você tiver um nome de exibição de apelido, poderá usar MkParseDisplayName para obter rapidamente o IMoniker ignorando a enumeração.Ou você pode enumerar e comparar o nome de exibição do moniker com aquele que você já possui.

Para selecionar um dispositivo de captura de áudio ou vídeo, use o enumerador do dispositivo do sistema, descrito no tópico usando o enumerador do dispositivo do sistema.O enumerador do dispositivo do sistema retorna uma coleção de apelidos de dispositivos, selecionados pela categoria de dispositivo.Um apelido é um objeto COM que contém informações sobre outro objeto.Os apelidos permitem que o aplicativo obtenha informações sobre um objeto sem realmente criar o objeto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top