Pergunta

Qual é a melhor solução para converter arquivos WAV em WMA (e vice-versa) em C#?Na verdade, já implementei isso uma vez usando o SDK do Windows Media Encoder, mas ter que distribuir o Windows Media Encoder com meu aplicativo é complicado, para dizer o mínimo.O SDK do Windows Media Format tem grandes seções da API marcadas como obsoletas.Parece que pode haver alguns objetos de mídia DirectX (DMOs) que eu poderia usar no SDK do Windows, mas haveria muita interoperabilidade para escrever.

Estou me perguntando se talvez exista um bom wrapper gerenciado para uma biblioteca não gerenciada que possa realizar as conversões.Seria necessária uma licença que permitisse sua distribuição como parte de um aplicativo comercial de código fechado.

Foi útil?

Solução

Eu não tentei pessoalmente (então não tenho certeza se é a 'melhor' solução), mas http://www.codeproject.com/KB/audio-video/WmaCompressor.aspx parece que deve atender às suas necessidades ...

Outras dicas

Você pode dar uma olhada no Biblioteca BASS.Possui add-ons, como BASSWMA e BASSEnc para fazer codificação/decodificação.Todas as suas APIs são acessíveis no .NET usando o BASS.Net embrulho.

Tanto o BASS como o BASS.Net podem ser licenciados para uso comercial, com uma taxa razoável (100€ cada).

Se você se sentir confortável escrevendo um pouco de C++/CLI, não precisará de muito código para criar um wrapper em torno do DirectShow para fazer isso.Isso pode ser chamado diretamente de um assembly C#, sem necessidade de mexer na interoperabilidade.Fazer isso com o DirectShow é muito mais fácil do que usar o WMF diretamente porque você não precisa fazer nenhuma análise de arquivo ou E/S - tudo é feito para você.Para referência, tenho código em um aplicativo comercial que pode codificar/decodificar WMA de/para arquivos WAV em menos de 100 linhas de C++, tudo embrulhado em uma classe .Net amigável.O uso criterioso de ponteiros inteligentes ajuda se você seguir esse caminho...

Primeiro de tudo, veja isto:

http://windowsmedianet.sourceforge.net/

Em seguida, pesquise IWMWritter - e várias maneiras de inicializá-lo.Você fornecerá dados PCM brutos e gravará o arquivo wma.

Marque minha resposta para obter mais informações sobre isso.

Você pode olhar www.mitov.com.Existem algumas bibliotecas que podem ajudar.Você precisará comprar uma cópia para enviar um produto comercial, acredito, mas acho que é um preço razoável.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top