Domanda

Qual è la soluzione migliore per convertire file WAV in WMA (e viceversa) in C#?In realtà l'ho già implementato una volta utilizzando Windows Media Encoder SDK, ma dover distribuire Windows Media Encoder con la mia applicazione è a dir poco complicato.L'SDK del formato Windows Media presenta ampie sezioni dell'API contrassegnate come deprecate.Sembra che potrebbero esserci alcuni DirectX Media Objects (DMO) che potrei utilizzare da Windows SDK, ma ci sarebbe moltissima interoperabilità da scrivere.

Mi chiedo se esista forse un buon wrapper gestito per una libreria non gestita in grado di eseguire le conversioni.Avrebbe bisogno di una licenza che ne consenta la distribuzione come parte di un'applicazione commerciale closed source.

È stato utile?

Soluzione

Non l'ho provato personalmente (quindi non sono sicuro che sia la soluzione "migliore"), ma http://www.codeproject.com/KB/audio-video/WmaCompressor.aspx sembra che dovrebbe soddisfare le tue esigenze...

Altri suggerimenti

Puoi dare un'occhiata a Libreria BASS.Dispone di componenti aggiuntivi, come BASSWMA e BASSEnc per eseguire la codifica/decodifica.Tutte le sue API sono accessibili da .NET utilizzando il file .NET BASS.Net involucro.

Sia BASS che BASS.Net potrebbero essere concessi in licenza per uso commerciale, con una tariffa ragionevole (€ 100 ciascuno).

Se hai dimestichezza con la scrittura di un po' di C++/CLI, non avrai bisogno di molto codice per creare un wrapper attorno a DirectShow per eseguire questa operazione.Questo può quindi essere chiamato direttamente da un assembly C# senza bisogno di scherzare con l'interoperabilità.Farlo con DirectShow è molto più semplice che usare direttamente WMF perché non devi eseguire alcuna analisi dei file o I/O: è tutto fatto per te.Per riferimento, ho del codice in un'app commerciale in grado di codificare/decodificare WMA in/da file WAV in meno di 100 righe di C++, il tutto racchiuso in una classe .Net amichevole.Un uso giudizioso dei puntatori intelligenti aiuta se si segue questa strada...

Prima di tutto, guarda questo:

http://windowsmedianet.sourceforge.net/

Quindi, cerca IWMWritter e vari modi per inizializzarlo.Fornirai dati PCM grezzi e scriverà il file wma.

Tagga la mia risposta per favore per maggiori informazioni al riguardo.

Potresti guardare www.mitov.com.Ci sono alcune biblioteche lì che possono aiutare.Credo che dovrai acquistare una copia da spedire in un prodotto commerciale, ma penso che sia un prezzo ragionevole.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top