Question

Quelle est la meilleure solution pour convertir des fichiers WAV en WMA (et inversement) en C #? En réalité, j’ai déjà implémenté cette solution avec le kit de développement logiciel Windows Media Encoder, mais il est pour le moins fastidieux de distribuer Windows Media Encoder avec mon application. Le Kit de développement logiciel (SDK) Windows Media Format contient de grandes sections de l'API marquées comme obsolètes. Il semblerait que je puisse utiliser certains objets multimédias DirectX (DMO) à partir du Kit de développement logiciel (SDK) Windows, mais il y aurait énormément d'interopérabilité à écrire.

Je me demande s’il existe peut-être un bon wrapper géré pour une bibliothèque non gérée capable d’effectuer les conversions. Il lui faudrait une licence lui permettant d’être distribué dans le cadre d’une application commerciale à source fermée.

Était-ce utile?

La solution

Je n'ai pas essayé personnellement (je ne suis donc pas sûr que ce soit la "meilleure" solution), mais http://www.codeproject.com/KB/audio-video/WmaCompressor.aspx semble devoir correspondre à vos exigences ...

Autres conseils

Vous pouvez consulter la bibliothèque BASS . Il a des add-ons, tels que BASSWMA et BASSEnc pour faire le codage / décodage. Toutes ses API sont accessibles à partir de .NET à l'aide de l'encapsuleur BASS.Net .

Les licences BASS et BASS.Net pourraient toutes deux être utilisées à des fins commerciales, moyennant un coût raisonnable (100 € chacune).

Si vous êtes à l'aise pour écrire un peu de C ++ / CLI, vous n'avez pas besoin de beaucoup de code pour créer un wrapper autour de DirectShow. Cela peut ensuite être appelé directement à partir d'un assemblage C # sans avoir à manipuler interop. Le faire avec DirectShow est beaucoup plus facile que d'utiliser directement WMF car vous n'avez pas à analyser les fichiers ni les E / S - tout est fait pour vous. Pour référence, j'ai un code dans une application commerciale qui peut encoder / décoder des fichiers WAV vers / à partir de fichiers WAV en moins de 100 lignes de C ++, le tout enveloppé dans une classe .Net conviviale. Une utilisation judicieuse des pointeurs intelligents est utile si vous suivez cette voie ...

Tout d’abord, regardez ceci:

http://windowsmedianet.sourceforge.net/

Ensuite, recherchez IWMWritter - et différentes manières de l’initialiser. Vous fournirez des données PCM brutes et le fichier wma sera écrit.

Marquez ma réponse s'il vous plaît pour plus d'informations à ce sujet.

Vous pouvez consulter www.mitov.com . Certaines bibliothèques pourraient vous aider. Je pense que vous devrez acheter une copie pour pouvoir expédier un produit commercial, mais je pense que le prix est raisonnable.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top