Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEnginee Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize 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
Este filtro de exemplo mostra como implementar um relógio de referência. O filtro usa a entrada padrão do microfone para ouvir picos de áudio (como cliques, palmas ou tosse), que ele usa para determinar uma taxa de relógio.
Utilização
Crie o projeto de exemplo e copie a DLL de filtro (Metronom.ax) para o diretório do sistema Windows. Execute o arquivo Metronom.reg para registrar a DLL.
Para usar o filtro:
- Crie um gráfico de filtro no GraphEdit que renderize um fluxo de vídeo.
- Exclua todos os fluxos de áudio renderizados.
- Adicione o filtro Metrônomo ao gráfico. Ele aparece na categoria Filtros DirectShow.
- Execute o gráfico. O vídeo começará a ser reproduzido à velocidade normal.
- Bata as mãos ou use um metrônomo para definir uma nova velocidade.
Notas de programação
Este filtro funciona apenas para vídeo. O renderizador de áudio não é capaz de sincronizar com taxas de clock radicalmente diferentes.
Se bater palmas 92 vezes por minuto (uma vez a cada ~652 ms), o vídeo será reproduzido à taxa normal. Você pode alterar esse padrão alterando o valor da constante BPM em Metronom.cpp.
Se você parar de bater palmas por um período de tempo e, em seguida, começar a bater palmas novamente, você deve começar de novo aproximadamente na mesma velocidade, ou o filtro irá ignorá-lo. Além disso, a taxa de reprodução de vídeo é limitada pela velocidade da CPU. Se você exceder o limite por qualquer período de tempo, o filtro deixará de responder às alterações de tarifa. Se isso acontecer, pare o gráfico e reinicie.
Se você implementar seu próprio relógio, as regras mais importantes é que os relógios de referência não devem retroceder. Ou seja, eles nunca devem relatar um valor de tempo menor do que o valor de tempo anterior.
Download do 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: [SDK Root]\Samples\Multimedia\DirectShow\Filters\Metronome.
Tópicos relacionados