Копирование аудио CD в Python/Java

У меня есть около 500 компакт-дисков, которые нуждаются в резервном копировании, они содержат старые сессии.

Мне нужна библиотека, которая может использоваться любым (Java / Python) для копирования этих компакт-дисков

Он не должен поддерживать 'nix и должен поддерживать *Windows*

Бонусные баллы предоставляются за каркас, который также может обрабатывать метаданные, прикрепленные к трекам.

Я искал целую вечность, я ничего не могу найти, и этот вопрос по теме

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

Редактировать:

Все еще не найдены бесплатные библиотеки, которые поддерживают аудио-CD Riping

4 ответа

Решение

Я не могу найти ничего в Windows, которая имеет прямой API, но вы можете получить то, что вы хотите, с помощью поиска "командной строки". Я нашел такие вещи, как:

Который вы могли бы затем интегрировать в процесс Java или Python, который управлял процессом преобразования большего размера. Затем вы можете использовать такой инструмент, как Mutagen, чтобы добавить соответствующие аудио метаданные для ваших записей.

Кроме того, имейте в виду, что если вы можете найти способ смонтировать аудио CD как диск с данными (я не знаю, каково текущее поведение Windows, но MacOS X может сделать это, например), вы можете просто скопировать CDA файлы с диска и использовать большее количество инструментов и библиотек для преобразования типов файлов.

У Java есть звуковой API http://www.oracle.com/technetwork/java/index-139508.html

На этом сайте есть несколько хороших ресурсов, примеров и исходного кода: http://www.jsresources.org/examples/ И это:

которые читают аудио CD непосредственно для извлечения звуковых данных. В примерах используется пакет javax.sound.sampled.

http://www.jsresources.org/examples/audio_cdda.html

Я уверен, что COM API проигрывателя Windows Media включает функции копирования. Полу-гарантированно будет на вашем компьютере с Windows. Вот интерфейс C++ IWMPCdromRip (MSDN)

Решением Python для решения проблемы было бы добавление pywin32 для COM в API -интерфейс WMP COM - оно должно дать вам то, что вы хотите, хотя мне также любопытно, почему вы не хотите просто копировать с помощью WMP (или чего-то еще), а затем публиковать -процессировать полученные файлы, как предложено Адамом Гентом. С 1 или 500+ компакт-дисками, я бы ожидал, что большой приемник времени будет физически загружать носитель и ждать его копирования, а не использовать кнопки для копирования.

Я не слишком много работал с COM под Java или Python (я больше не использую Windows для dev), но несколько лет назад это было достаточно просто с C/C++ с использованием порта gcc для Windows (так что никакой помощи от MSVS/CLR), Pascal и т. Д., Поэтому я не могу представить, что он не будет доступен в Java (и, конечно, он есть для Python, использующего pywin32).

Если бы я мог, я бы сделал ссылку "дай мне google-that-for-you-link"...

http://www.foobar2000.org/

Foobar2000, кажется, делает то, что вы хотите, и имеет SDK. Вы можете использовать Python CTypes, хотя, честно говоря, я не думаю, что вам нужно будет заниматься программированием того, что вы хотите.

Приложение:

Опция Python:

Вы также можете проверить: http://code.google.com/p/quodlibet/. Он написан на Python и является кроссплатформенным с некоторыми довольно мощными возможностями тегирования (благодаря бесплатной версии Mutagen). Однако (из беглого взгляда) не похоже, что он поддерживает копирование, но вы можете использовать для этого другой инструмент.

Вариант Java:

Я не пробовал atunes, но выглядит многообещающе: http://www.atunes.org/?page_id=6. Согласно их сайту, есть установщик Windows, но "Для копирования необходимо установить lame, flac или oggenc".

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