Задача: Есть куча mp3-файлов, с тегами и без них. Если композиций одного исполнителя много - я их складываю в отдельную папку, если же 1-2 штуки, то кладу их в общую папку "СБОРНИК". Когда количество композиций одного исполнителя увеличивается, я создаю папку и переношу их туда. Проблема в том что у меня есть плей-листы (например в формате winamp), в которые я накидываю любимые песенки, а после очередной реорганизации файлов плей-листы ломаются.
Идея: создать базу mp3-файлов, где кодом каждой композиции будет идентификатор построенный на основе ряда параметров mp3-файла, например контрольной суммы: id filename 54987546 c:\music\сборник\Nirvana - The Men Who Sold The World.mp3 12348246 c:\music\Валерия\трек1.mp3 ... При перемещении файла в другую папку, ссылка в базе становится битой. Но мы всегда сможем найти файл по идентификатору. Можно написать процедуру восстановления ссылок, которая будет перебирать базу, проверять целостность ссылки и если ссылка битая, искать файл и восстанавливать ссылку. Так какие параметры mp3-файла можно использовать? Например BITRATE * LENGTH ??? |
softsafer
наиболее уникальным, на мой взгляд, является размер файла в байтах :biglaugh: |
Surround
Если есть 10000 файлов и размер их колеблется от 3 до 7 Мб, вероятность совпадения 0,025%. Довольно велика. Если файлов будет 100000 штук, то вероятность возрастает до 0.25%. Было бы неплохо этот размер помножить ещё на какой-нить параметр. |
softsafer
можно считать CRC или MD5. на быстрых компах считаются вполне быстро. Главное эти методы обеспечивают уникальность хэша или контрольной суммы. |
Если менялись тэги, (а это вполне даже реально), то ни один из названных способов не пройдет.
|
bilytur
Тогда надо взять параметры, которые не зависят от тегов: - длина трека в секундах - bitrate Или же убрать теги и посчитать CRC |
Цитата:
|
Ну вот теперь все правильно. Не возражаю. :)
|
Время: 16:48. |
Время: 16:48.
© OSzone.net 2001-