Конвертировать WAV в WMA с помощью.NET

Какое лучшее решение для преобразования файлов WAV в WMA (и наоборот) в C#? Я уже однажды реализовал это, используя Windows Media Encoder SDK, но необходимость распространять Windows Media Encoder вместе с моим приложением, по меньшей мере, громоздка. Windows Media Format SDK имеет большие разделы API, помеченные как устаревшие. Похоже, что могут быть некоторые DirectX Media Objects (DMO), которые я мог бы использовать из Windows SDK, но было бы очень много взаимодействия, чтобы написать.

Мне интересно, может быть, есть хорошая управляемая оболочка для неуправляемой библиотеки, которая может выполнять преобразования. Для этого потребуется лицензия, позволяющая распространять ее как часть коммерческого приложения с закрытым исходным кодом.

5 ответов

Решение

Я не пробовал это лично (поэтому не уверен, что это "лучшее" решение), но http://www.codeproject.com/KB/audio-video/WmaCompressor.aspx похоже, что оно должно соответствовать вашим требованиям...

Если вам удобно писать немного на C++/CLI, вам не нужно много кода для создания оболочки вокруг DirectShow, чтобы сделать это. Это может быть вызвано непосредственно из сборки C# без необходимости связываться с interop. Делать это с DirectShow намного проще, чем использовать WMF напрямую, потому что вам не нужно выполнять разбор файлов или ввод / вывод - все это сделано для вас. Для справки, у меня есть код в коммерческом приложении, который может кодировать / декодировать WMA в / из WAV-файлов менее чем в 100 строках C++, все это заключено в дружественный класс.Net. Разумное использование умных указателей поможет, если вы пойдете по этому пути...

Вы можете взглянуть на библиотеку BASS. Он имеет надстройки, такие как BASSWMA и BASSEnc для кодирования / декодирования. Все его API доступны из.NET с помощью оболочки BASS.Net.

И BASS, и BASS.Net могут быть лицензированы для коммерческого использования за разумную плату (100 евро каждая).

Прежде всего, посмотрите на это:

http://windowsmedianet.sourceforge.net/

Затем найдите IWMWritter - и различные способы его инициализации. Вы предоставите необработанные данные PCM, и он запишет файл wma.

Отметьте мой ответ, пожалуйста, для получения дополнительной информации по этому вопросу.

Вы можете посмотреть на http://www.mitov.com/. Там есть несколько библиотек, которые могут помочь. Я полагаю, что вам нужно будет купить копию для отправки в коммерческом продукте, но я думаю, что это разумная цена.

Другие вопросы по тегам