2008-09-15 20 views
6

¿Cuál es la mejor solución para convertir archivos WAV a WMA (y viceversa) en C#? De hecho, lo he implementado una vez usando Windows Media Encoder SDK, pero tener que distribuir Windows Media Encoder con mi aplicación es engorroso, por decir lo menos. El Windows Media Format SDK tiene grandes secciones de la API marcadas como obsoletas. Parece que podría haber algunos Objetos de Medios de DirectX (DMO) que podría usar desde el SDK de Windows, pero habría muchísima interoperabilidad para escribir.Convierta WAV a WMA usando .NET

Me pregunto si tal vez haya una buena envoltura administrada para una biblioteca no administrada que pueda realizar las conversiones. Necesitaría una licencia que le permita ser distribuida como parte de una aplicación comercial de código cerrado.

+0

¿Tiene alguna muestra de cómo convertir una wma a wav? Todas las muestras que he visto solo han sido enviadas a wma –

Respuesta

1

no he probado personalmente (así que no sé si es la solución 'mejor'), pero http://www.codeproject.com/KB/audio-video/WmaCompressor.aspx parece que debería satisfacer sus necesidades ...

+0

sí, creo que esta es la solución más prometedora disponible en este momento. El mismo autor también ha realizado un puerto C# del SDK de Windows Media Format. Mi única preocupación es que no está muy claro si el código se puede usar en un proyecto comercial. –

1

Puede echar un vistazo a la BASS library. Tiene complementos, como BASSWMA y BASSEnc para hacer codificación/decodificación. Todas sus API son accesibles desde .NET utilizando el contenedor BASS.Net.

Tanto BASS como BASS.Net podrían tener licencia para uso comercial, con una tarifa razonable (€ 100 cada uno).

1

Si te sientes cómodo escribiendo un poco de C++/CLI, entonces no necesitas mucho código para crear un contenedor con DirectShow para hacer esto. Esto se puede llamar directamente desde un ensamblaje C# sin necesidad de meterse con la interoperabilidad. Hacerlo con DirectShow es mucho más fácil que usar WMF directamente porque no tiene que hacer ningún análisis de archivos o E/S: todo está hecho para usted. Como referencia, tengo un código en una aplicación comercial que puede codificar/decodificar WMA a/desde archivos WAV en menos de 100 líneas de C++, todo envuelto en una amigable clase .Net. El uso juicioso de los indicadores inteligentes ayuda si avanza por esta ruta ...

0

Puede consultar www.mitov.com. Hay algunas bibliotecas allí que pueden ayudar. Necesitarás comprar una copia para enviar en un producto comercial, creo, pero creo que es un precio razonable.

1

En primer lugar, mira esto:

http://windowsmedianet.sourceforge.net/

Entonces, búsqueda de IWMWritter - y varias formas de inicializarlo. Proporcionará datos de PCM en bruto y escribirá el archivo wma.

Etiqueta mi respuesta por favor para más información sobre esto.