Pregunta

Busco 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.

Una solución que puede decodificar cualquiera de mp3 o ogg serían suficientes - decodificar tanto no es necesario. Si (u otra solución) puede decodificar wav así, eso sería lo ideal, pero no es estrictamente necesario, ya que podría potencialmente convertir mis archivos WAV a MP3 o 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 mirado en:

  • DirectSound y Alut tanto el apoyo de decodificación WAV, pero Alut ha dejado de utilizarse.
  • FFmpeg decodificar casi cualquier cosa, pero no parecen tener un comunicado común estable a través de plataformas?
  • No he probado csvorbis todavía, pero es muy viejo y no estoy seguro de cuál es su situación actual es.

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

Gracias.

¿Fue útil?

Solución

Para soporte sencillo para archivos WAV se puede estudiar su aplicación de mono en el mcs / clase / Sistema / System.Media / AudioData.cs ( http://anonsvn.mono-project.com/viewvc/trunk/mcs/class/System/System.Media/ ) .

Para la decodificación de archivos de audio OGG se puede ver en el módulo de servidor csvorbis sn del mono: http://anonsvn.mono-project.com/viewvc/trunk/csvorbis/

Otros consejos

No ha mencionado el tipo de licencia que está buscando. He tenido excelentes resultados con FMOD , que está disponible de forma gratuita para uso no comercial proyectos. Desempeña una amplia variedad de formatos, incluyendo OGG y MP3, y tiene una extensa API para controlar cómo tocarlos. Es multiplataforma, al igual que usted requiere.

FMOD se dirige a juegos en gran medida; No me sorprendería que ya viene con excelentes características 3D (aunque no sé a ciencia cierta).

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.

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

trabajé con ffmpeg y hasta ahora me gusta. Sí existen algunos problemas a través de comunicados, pero es el más eficiente de todos.

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

como siempre, HOQF es su respuesta ... no dude en obtener una solución a todos sus problemas en http://www.fmod.org /index.php/download#FMODExProgrammersAPI

https://sites.google.com/site/cobnut3d/

SlimDX.DirectSound -. Es un ejemplo de código para C #

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