Копирование CD в mp3 в C# - сторонний компонент или API там?
Мы работаем над проектом, который требует копирования звуковых дорожек с компакт-дисков в MP3 (в идеале также получение информации о дорожках с CDDB или аналогичной).
Дополнительная справочная информация: различные музыкальные лейблы отправляют нам музыкальные компакт-диски, которые мы затем доставляем людям через систему онлайн-доставки. Мы смотрим на автоматизацию процесса конвертации этих CD в MP3 с полной информацией о треках, где это возможно. Мы хотим создать простое настольное приложение, которое позволит сотрудникам редакции настраивать информацию о новой музыке, которую мы получаем. Чтобы упростить процесс, мы хотели бы включить копирование аудио и поиск информации о треке.
4 ответа
Вы можете сделать все это через доступ к библиотеке управления проигрывателя Windows Media через COM-взаимодействие (IWMPCdromRip
интерфейс охватывает CD копирования, например). Это не красиво и не выглядит очень управляемым (вы даете ему список дорожек для копирования, говорите, что нужно копировать, он копирует их и помещает их в библиотеку WMP - которую вы затем можете автоматизировать и получить дорожки из), но это будет работать сквозной, включая запрос данных трека и обложки альбома. Загляните на http://msdn.microsoft.com/en-us/library/bb262437(VS.85).aspx чтобы начать.
Быстрый Google также нашел ссылку на статью CodeProject, где авторы создали библиотеку копирования CD, взаимодействуя с низкоуровневыми API-интерфейсами IOCTL, напрямую взаимодействуя с CD-дисководом. Это может быть хорошей отправной точкой для создания вашей собственной - найдите это на http://www.codeproject.com/KB/cs/csharpripper.aspx.
Тот же автор собрал кодировщик C# с помощью LAME, хотя вы можете просто подключиться к LAME.EXE, что может быть проще. См. http://www.codeproject.com/KB/audio-video/MP3Compressor.aspx.
Запрашивать CDDB (или, скорее, FREEDB) - это не ракетостроение, а простой интерфейс HTTP (хотя, как ни странно, я не смог найти Web-сервис). Легко сделать с WebRequest
,
Вы могли бы подумать, что кто-то уже собрал бы простую библиотеку C# для этого, но это кажется необычным запросом. Может быть, время для побочного проекта...
Возможно, мало кто знает, что автор всемирно известного www.exactaudiocopy.de лицензирует свое программное обеспечение для разработчиков. Он утверждает, что его программное обеспечение способно всегда создавать одну и ту же копию, в то время как другие библиотеки менее точны. Есть лицензии для разработчиков и лицензии на распространение. Они не дешевые, но когда вы хотите получить лучшее, что есть, это абсолютный выбор.
Я не знаю, как копировать диск.
Как только у вас есть аудио данные, вы можете кодировать их с помощью LAME
Чтобы узнать, как получить доступ к freedb Найдите компакт-диск, в нем также показано, как добраться до оглавления и создать отпечаток пальца для диска. Что касается лучшего способа работы с компакт-дисками напрямую - кто знает! Microsoft сделала так много неудачных попыток создания своего рода мультимедийного API, что это полный беспорядок - вы можете использовать драйвер IOCTL, directx, MCI или новый API записи DVD. Лично я использую MCI - он старый, но работает почти со всем и делает то, что я хочу делать. Я также использую LAME в качестве компрессора, и он также работает нормально.