1
Вопросы (архив) / Questions (archive) / Re: Как AIMP понимает откуда читать теги ?
« on: June 16, 2017, 14:47:25 »CUE подхватывается только если описывает один файл, в случае отдельных треков - игнорируетсяспасибо )
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
CUE подхватывается только если описывает один файл, в случае отдельных треков - игнорируетсяспасибо )
FILE "05-Rock Me Baby.flac" WAVE
TRACK 05 AUDIO
TITLE "Rock Me Baby"
PERFORMER "Jefferson Airplane"
ISRC H2IM10400550
INDEX 01 00:00:00
TRACK 06 AUDIO
TITLE "The Other Side Of This Life"
PERFORMER "Jefferson Airplane"
ISRC H2IM10400551
INDEX 00 07:45:41
FILE "06-The Other Side Of This Life.flac" WAVE
INDEX 01 00:00:00
FILE "05-Rock Me Baby.flac" WAVE
TRACK 05 AUDIO
TITLE "Rock Me Baby"
PERFORMER "Jefferson Airplane"
ISRC H2IM10400550
INDEX 01 00:00:00
FILE "06-The Other Side Of This Life.flac" WAVE
TRACK 06 AUDIO
TITLE "The Other Side Of This Life"
PERFORMER "Jefferson Airplane"
ISRC H2IM10400551
INDEX 01 00:00:00
Простой хеш тут не подходит - допустим, вы заменили файл более качественным или переизданием. Есть специальные алгоритмы расчета слепка аудиоданных, которые не берут во внимание громкость и отклонения в пределах шумов.
Что же касается синхронизации
Прямой доступ к базе - это плохо:
1. Структура базы может меняться от версии к версии.
2. Фонотека предусматривает не только локальные файлы, но и совершенно другие источники данных. К ним вы напрямую доступ уже не получите.
На сколько я понял, то на текущий момент вам нужно лишь получить список полных путей для всех файлов, что проиндексированы фонотекой, так?
Ну вот смотрите, Вы хотите по уникальному признаку найти файл в домашней базе и подкрутить статистику.
Ваш признак - хэш, которому доверять нельзя, как уже здесь выяснили. Я предлагаю в качестве уникального признака путь до файла - даже если теги поменяются, ничего страшного не произойдёт.
Далее. Не нужно помнить/каждый раз копировать базу, это-то как раз должно быть автоматически, в первом же моём сообщении специально указано. Положил базу в облако - и забыл. Послушал дома, пришёл на работу - БД уже синхронизирована, послушал на работе, пришёл домой - все новые прослушивания на месте. Ни надо ни о чём думать.
Короче, считаю спор непродуктивным, если Вам кажется плагинный вариант проще - пожалуйста, надеюсь что-то выйдет.
Я не говорю, что Ваша идея плоха. Нет, цель Вы преследуте благую. Я толкую о том, что в текущих реалиях плагин писать не имеет смысла, можно решить проблему подручными средствами.
Пока AIMP не научится сам делать что-то такое - все решения будут костыльными (Вы же всё равно доступ к БД в плагине не получите).
Верно заметили, что универсального решения нет. Нужна поддержка от раззработчиков AIMP'а.
Удачи.
Да ничего не произойдёт. Снимите галку "удалять несуществующие" и всё.
Ну появится на ноуте новая музыка, Вы хотите её в базу добавить или нет? Если хотите, то рано или поздно всё равно же принесёте музыкальные файлы с ноута на комп. А если не хотите, зачем вообще тогда что-то синхронизировать, если у Вас априори разные библиотеки.
Вы же то же самое решение предлагаете, только закостыленное
Не проще ли на всех устройствах использовать одинаковую структуру каталогов для музыки?
Никаких плагинов не надо тогда, достаточно синхронизировать файл базы (это элементарно, хоть через облако).
Всё прозрачно работает и никаких костылей.
Это плохая идея. Время от времени структура базы меняется, иногда даже кардинально.
Хеш будет совпадать только в том случае, если человек скопировал конкретно этот файл на свое устройство. Если в файле были поправлены теги, или он с более высоким битрейтом - хеш будет другим.
Да. Во время работы плеера база заблокирована.
Что вы хотите делать с базой? Распишите подробно
У вас не указан Module Definition File (см. картинку ниже). ПКМ на пункте проекта (а не солюшена), в появившемся окне в разделе "Linker/Input" укажите нужный файл (в данном случае exports.def). Только перед этим лучше сверху в поле "Configuration" задать как "All Configurations", чтобы дважды не указывать этот файл.Зарботало !
Можно экспортировать функции без всяких def файлов, но у меня не получалось. Если хотите - погуглите, такой способ будет проще.
Синхронизацию вы сделать не сможете. Поскольку рейтинг и количество прослушиваний доступны только для чтения. Рейтинг вообще рассчитывается динамически по истории воспроизведения.
Разве есть принципиальная разница?
Доступ есть. Манипуляции - нет (разве что оценку выставить). Какие манипуляции нужны?
Можете посмотреть в этой теме. Там есть ссылки на исходники плагинов на С++.
Демок на С++ нет. В принципе, дельфевских демок достаточно для понимания, как это работает