Compartilhar via


Interface IMediaDet

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Observação

[Preterido. Essa API pode ser removida de versões futuras do Windows.]

 

A IMediaDet interface recupera informações sobre um arquivo de mídia, como o número de fluxos e o tipo de mídia, duração e taxa de quadros de cada fluxo. Ele também contém métodos para recuperar quadros individuais de um fluxo de vídeo. O objeto Media Detector (MediaDet) expõe essa interface.

Para obter informações sobre um arquivo usando essa interface, execute as seguintes etapas:

  1. Crie uma instância do objeto MediaDet chamando CoCreateInstance. A ID da classe é CLSID_MediaDet.
  2. Chame IMediaDet::p ut_Filename para especificar o nome do arquivo de origem.
  3. Chame IMediaDet::get_OutputStreams para obter o número de fluxos de saída na origem.
  4. Chame IMediaDet::p ut_CurrentStream para especificar um fluxo específico.
  5. Chame qualquer um dos seguintes métodos:

Para recuperar um quadro de vídeo, chame IMediaDet::GetBitmapBits ou IMediaDet::WriteBitmapBits. O quadro retornado está sempre no formato RGB de 24 bits.

Observação

Não use o mesmo objeto MediaDet com vários arquivos. Para obter informações ou quadros de vídeo de mais de um arquivo, use instâncias separadas do MediaDet.

 

A interface IMediaDet não dá suporte a formatos VIDEOINFOHEADER2 , portanto, você não pode usar essa interface para obter campos entrelaçados ou informações sobre interlacagem. Além disso, se o decodificador upstream der suporte apenas a VIDEOINFOHEADER2, você não poderá usar IMediaDet. Esse pode ser o caso de um decodificador MPEG-2, por exemplo. Além disso, a IMediaDet interface ignora todos os fluxos no arquivo que não são vídeo ou áudio. Por exemplo, se o arquivo contiver um fluxo de áudio, um fluxo de dados e um fluxo de vídeo, o método get_OutputStreams relatará apenas dois fluxos (áudio e vídeo).

Membros

A interface IMediaDet herda da interface IUnknown . O IMediaDet também tem estes tipos de membros:

Métodos

A interface IMediaDet tem esses métodos.

Método Descrição
EnterBitmapGrabMode Alterna o detector de mídia para o modo de captura de bitmap e busca o grafo de filtro para um horário especificado.
get_CurrentStream Recupera o número de fluxo usado atualmente pelo detector de mídia.
get_Filename Recupera o nome do arquivo de origem usado atualmente pelo detector de mídia.
get_Filter Recupera um ponteiro para o filtro de origem usado atualmente pelo detector de mídia.
get_FrameRate Recupera a taxa de quadros do fluxo atual.
get_OutputStreams Recupera o número de fluxos de áudio e vídeo contidos na fonte de mídia.
get_StreamLength Recupera a duração do fluxo atual.
get_StreamMediaType Recupera o tipo de mídia do fluxo atual.
get_StreamType Recupera o GUID (identificador global exclusivo) para o tipo de mídia do fluxo atual.
get_StreamTypeB Recupera uma cadeia de caracteres que representa o GUID do tipo de mídia para o fluxo atual.
GetBitmapBits Recupera um quadro de vídeo no tempo de mídia especificado.
GetSampleGrabber Recupera um ponteiro para a interface ISampleGrabber .
put_CurrentStream Especifica o número de fluxo para o detector de mídia a ser usado.
put_Filename Especifica o nome do arquivo de origem para o detector de mídia a ser usado.
put_Filter Especifica um filtro de origem para o detector de mídia a ser usado.
WriteBitmapBits Recupera um quadro de vídeo no tempo de mídia especificado e o grava em um arquivo.

 

Comentários

Observação

O arquivo de cabeçalho Qedit.h não é compatível com cabeçalhos Direct3D posteriores à versão 7.

 

Observação

Para obter qedit.h, baixe o SDK do Microsoft Windows Update para Windows Vista e .NET Framework 3.0. O Qedit.h não está disponível no SDK do Microsoft Windows para Windows 7 e .NET Framework 3.5 Service Pack 1.

 

Requisitos

Requisito Valor
parâmetro
Qedit.h
Biblioteca
Strmiids.lib