Вопрос

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

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

Это было полезно?

Решение

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

Другие советы

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

Как для баса, так и для БАС-гитары.Net может быть лицензирован для коммерческого использования за разумную плату (100 евро за штуку).

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

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

http://windowsmedianet.sourceforge.net/

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top