Pregunta

¿Es DirectSound la mejor capa de abstracción de audio para Windows? Cambiar mi aplicación de una implementación de sonido muy mala, construida a un conjunto de chips específico, a una capa de abstracción.

La aplicación es Winform nativa, .net 3.5. DirectX / DirectSound es la opción más probable, pero un poco preocupado por los gastos generales. ¿Alguna otra opción? ¿O es una tontería incluso PENSAR en algo más?

¿Fue útil?

Solución

DirectSound no está recibiendo el mismo amor de Microsoft hoy que en el pasado. En lo que respecta a DirectX, puede probar XAudio2 o XACT en su lugar. Algunas personas los aman, otros los odian. XAudio2 tiene un nivel más bajo, mientras que XACT es un nivel bastante alto. Ambos son accesibles desde Microsoft XNA, que es como Managed DirectX, pero se desarrolla activamente.

Pero no está restringido a usar lo que viene con DirectX. Prueba FMod si quieres algo genial. Todavía tienen su modelo de licencia Shareware / Hobbyist y un modelo de licencia Freeware, en caso de que no quieras pagar mucho dinero.

Tu elección depende de lo que quieres hacer exactamente con el sonido.

Otros consejos

Vea si SDL se ve mejor.

Bueno, puedes probar OpenAL . Lo que OpenGL es para Direct3D es OpenAL para DirectSound (3D). La interfaz es bastante similar a OpenGL, si no te gusta eso, probablemente no te gustará OpenAL también. Además, no estoy seguro de si la versión de Windows de esta biblioteca es propia, implementación nativa o simplemente llama a DirectSound y, por lo tanto, podría ser un contenedor (¿delgado?) Encima.

DirectSound es bastante bueno.

Si necesita una baja latencia o un buen soporte para la entrada y salida de sonido a través de múltiples tarjetas de sonido al mismo tiempo, es posible que también desee ver ASIO:

http://de.wikipedia.org/wiki/Audio_Stream_Input/Output

La waveOut ... API sigue siendo una opción. Es difícil trabajar con código administrado, pero puede reproducir múltiples sonidos a la vez de esta manera (al menos en XP y Vista).

Si solo necesitas reproducir sonidos ocasionalmente, System.Media.SoundPlayer es muy fácil de usar. Sin embargo, no puede reproducir más de un sonido a la vez con este componente.

DirectSound es su única alternativa importante. Tiene un sintetizador de software incorporado, si eso es algo que necesita.

EDIT: SDL parece interesante. Gracias, Sijin.

SharpDX parece interesante. Estoy planeando probarlo como un reemplazo para Managed DirectX debido a las limitaciones x86 de este último.

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