Ejemplo de filtro metronome
[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.
Descripción
Este filtro de ejemplo muestra cómo implementar un reloj de referencia. El filtro usa la entrada de micrófono predeterminada para escuchar picos de audio (como clics, claps de mano o tos), que usa para determinar una velocidad de reloj.
Uso
Compile el proyecto de ejemplo y copie el archivo DLL de filtro (Metronom.ax) en el directorio del sistema de Windows. Ejecute el archivo Metronom.reg para registrar el archivo DLL.
Para usar el filtro:
- Cree un gráfico de filtro en GraphEdit que represente una secuencia de vídeo.
- Elimine las secuencias de audio representadas.
- Agregue el filtro Metronome al gráfico. Aparece en la categoría Filtros de directShow.
- Ejecute el gráfico. El vídeo comenzará a reproducirse a velocidad normal.
- Clap las manos o use un metrónoma para establecer una nueva velocidad.
Notas de programación
Este filtro solo funciona para el vídeo. El representador de audio no es capaz de sincronizarse con velocidades de reloj radicalmente diferentes.
Si aplaude 92 veces por minuto (una vez cada ~652 ms), el vídeo se reproducirá a la velocidad normal. Puede cambiar este valor predeterminado cambiando el valor de la constante BPM
en Metronom.cpp.
Si deja de clamar durante un período de tiempo y, a continuación, comienza a clamar de nuevo, debe empezar de nuevo a aproximadamente la misma velocidad o el filtro lo omitirá. Además, la velocidad de reproducción de vídeo está limitada por la velocidad de CPU. Si supera el límite durante cualquier período de tiempo, el filtro dejará de responder a los cambios de frecuencia. Si esto sucede, detenga el gráfico y reinicie.
Si implementa su propio reloj, las reglas más importantes son que los relojes de referencia no deben retroceder. Es decir, nunca deben notificar un valor de tiempo menor que el valor de hora anterior.
Descarga del ejemplo
Para descargar los ejemplos del SDK de DirectShow, instale la versión más reciente de Windows SDK.
Este ejemplo se instala en la siguiente ruta de acceso: [SDK Root]\Samples\Multimedia\DirectShow\Filters\Metronome.
Temas relacionados