Pregunta

Estoy haciendo una aplicación donde yo:

  • Grabar desde el micrófono y hacer algo de procesamiento en tiempo real en la entrada
  • Reproducir un archivo MP3 (una canción regular), pero la manipulación de la salida en tiempo real
  • De vez en cuando voy a necesitar para reproducir sonidos adicionales sobre esta canción también, pero creo que puedo hacerlo simplemente añadiendo los tampones.

En resumen, tengo que tener buffer circular para la grabación y la reproducción, y tengo que ser "alimentar" el búfer de salida cada 20 ms o menos con los nuevos datos que están a punto de ser jugado.

He estado buscando en DirectSound, y no parece ayudar mucho. La lectura y la escritura a los buffers de salida parecen muy similares a Win32, el único lugar donde parece que sería la ayuda está en jugar los "sonidos adicionales" sobre la canción principal.

¿Debo usar DirectSound, o debería ir directamente a las API de Windows primas?
DirectSound se va a hacer nada para mí?

Gracias de antemano!

¿Fue útil?

Solución

Las API de DirectSound le dan un mejor control en tiempo real. Son también la forma de utilizar el sonido soportado en Windows. Yo tenía la impresión de que se depracated la década de API Win32, pero podría estar equivocado en esto.

Esta pregunta está cerca de la suya

https://stackoverflow.com/questions/314522 / que-es-el-mejor-c-sonido-api-para-ventanas

también

Es DirectSound la mejor capa de abstracción de audio para Windows?

Por último, pero no menos importante, esto es lo que Microsoft tiene que decir http://msdn.microsoft.com/en-us/library/dd370784 (VS.85) .aspx

Otros consejos

Ni? :)

La historia es que DirectSound es el reemplazo para waveOut, pero se unió a DirectSound DirectInput como las API desaprobadas en Vista y es sustituido por WASAPI . DirectSound y waveOut se implementan en la parte superior de la WASAPI espacio de usuario en Vista. En XP, waveOut y DirectSound alimentan a la misma API Mixer nivel de kernel.

Para consolidar todas estas interfaces echar un vistazo a algo así como OpenAL, que es un estándar de audio bien apoyado a lo largo de las mismas líneas que OpenGL.

Parece que va a ser muy sensibles a la latencia. Podría pagar a mirar ASIO

armonía Central - Audio Programación . También lea w:. DirectSound

  

Windows Vista cuenta con un completo   pila de audio basado en la re-escrito   Universal Audio Architecture. Porque   de los cambios en la arquitectura de la   pila de audio rediseñado, un camino directo   de DirectSound a los controladores de audio   no existe.

     

Debido a Xbox 360 y Microsoft   la integración de Windows, Microsoft es   empujando activamente a los desarrolladores a migrar   nuevas aplicaciones a Xbox equivalente   API de audio tales como XAudio y XACT.

OpenAL parece prometedor.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top