2009-04-10 151 views
5

Busco a una multiplataforma (.Net y Mono en Windows, MacOSX y Linux) manera de decodificar archivos WAV, MP3, OGG o archivos de este tipo, que luego puedo jugar los flujos decodificados a través de DirectSound o OpenAL lo deseas.Cómo decodificar wav, mp3 y/ogg en .Net/Mono?

una solución que puede decodificar cualquiera de mp3 o ogg sería suficiente - decodificando tanto no es necesario. Si esto (u otra solución) puede decodificar wav también, sería ideal, pero no es estrictamente necesario ya que podría convertir mis archivos wav a mp3 u ogg.

Una solución que sólo puede decodificar archivos WAV es sólo una solución parcial, pero me quedo con lo que puedo conseguir. ;-)

Esto es lo que ya he visto:

  • DirectSound y Alut tanto el apoyo de decodificación WAV, pero Alut ya no se utiliza.
  • ffmpeg decodificará casi cualquier cosa, pero no parece tener una versión estable común en todas las plataformas?
  • No he probado csvorbis todavía, pero es muy antiguo y no estoy seguro de cuál es su estado actual.

Usted es más que bienvenido para tratar de convencerme de que una de estas soluciones anteriores es realmente la mejor opción.

Gracias.

Respuesta

0

trabajé con ffmpeg y hasta ahora me gusta. Sí, hay pocos problemas entre lanzamientos, pero es el más eficiente de todos.

+0

¿Qué tan fácil es redistribuir ffmpeg en múltiples plataformas? Específicamente, ¿hay binarios de Windows/Mac/Linux fácilmente distribuidos que sean compatibles con Tao.Ffmpeg o algún otro contenedor .Net? –

+0

debería ser bastante fácil ... Laversidad lo usa para todos los medios de transcodificación para xbox –

1

Usted debe ser capaz de reproducir archivos .wav directamente con System.Media.SoundPlayer. No estoy seguro si eso ayuda a su caso de uso.

+0

Desafortunadamente no lo creo. Necesito la forma de onda cruda para poder pasarla a DirectSound/OpenAl para realizar efectos de sonido 3D. –

+0

Otro problema es que SoundPlayer no funciona bien con GC y necesitas hacks adicionales (http://www.codeproject.com/KB/audio-video/soundplayerbug.aspx) –

0

Para responder parcialmente a mi propia pregunta, resulta que es bastante fácil de escribir su propio cargador de WAV. He utilizado este artículo que describe el formato de archivo WAV:

http://www.sonicspot.com/guide/wavefiles.html

4

No ha mencionado el tipo de licencia que está buscando. He obtenido excelentes resultados con FMOD, que está disponible de forma gratuita para proyectos no comerciales. Reproduce una gran variedad de formatos, incluidos ogg y mp3, y tiene una extensa API para controlar cómo reproducirlos. Es multiplataforma, como lo requiere.

FMOD se dirige a los juegos en gran medida; No me sorprendería si ya viene con excelentes características 3D (aunque no estoy seguro).

Como se puede decir que soy un gran ventilador, que es sobre todo porque era sorprendentemente indolora de conseguir un proyecto de C# en blanco para reproducir un archivo OGG por primera vez.

Cuestiones relacionadas