Конвертировать WAV в WMA, используя .NET - PullRequest
6 голосов
/ 15 сентября 2008

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

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

Ответы [ 5 ]

1 голос
/ 02 сентября 2010

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

http://windowsmedianet.sourceforge.net/

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

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

1 голос
/ 18 сентября 2008

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

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

1 голос
/ 17 октября 2008

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

1 голос
/ 15 сентября 2008

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

0 голосов
/ 20 октября 2008

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

...