Exemplo de filtro assíncrono

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na 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 Captura de Áudio/Vídeo no 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.]

Descrição

O exemplo de Filtro Assíncrono é um filtro de leitor de arquivos que dá suporte ao download progressivo. Este filtro de exemplo implementa as interfaces IAsyncReader e IFileSourceFilter . Ele dá suporte a arquivos MPEG, mas não a arquivos AVI.

Uso

Este exemplo inclui um aplicativo de linha de comando pequeno, Memfile.exe, que demonstra o filtro. Os argumentos de linha de comando especificam um arquivo de mídia e uma taxa de bits, em quilobytes por segundo. O aplicativo lê o arquivo na memória na taxa especificada e reproduz o arquivo. Para fazer isso, ele cria uma instância do filtro, adiciona o filtro ao grafo de filtro e renderiza o pino de saída do filtro.

Na linha de comando, digite:

Memfile Filename BitRate

O filtro de exemplo assíncrono não dá suporte a arquivos AVI, pois não pode se conectar ao filtro divisor AVI . O pino de saída do filtro Async propõe MEDIATYPE_Stream e MEDIASUBTYPE_NULL para o tipo de mídia. O pino de entrada no filtro divisor AVI não aceita MEDIASUBTYPE_NULL e não propõe nenhum tipo próprio. Portanto, a conexão de pino falha. O filtro Async pode ser aprimorado para oferecer MEDIASUBTYPE_Avi quando apropriado. Por exemplo, ele pode examinar o formato do arquivo ou usar a extensão de arquivo.

Baixar o exemplo

Para baixar os exemplos do SDK do DirectShow, instale a versão mais recente do SDK do Windows.

Este exemplo é instalado no seguinte caminho: [Raiz do SDK]\Samples\Multimídia\DirectShow\Filters\Async.

Amostras do DirectShow