0 Members and 2 Guests are viewing this topic.
Я это сразу попробовал и мне выдало исключение - обращение к нулевому указателю.Возможно в delphi Value == null тоже самое что value.vt == VT_NONE(||VT_NULL) в плюсах, а раз я кидаю нулевой указатель, то поле vt мы получить не можем т.к. обращаемся к нулю. Либо на вышей стороне нет проверки на null.
VARIANT Value2 = {};Filter->Add(FieldName, &Value1, &Value2, ...
Снова взялся за свой плагин...Можно ли сделать так чтобы в плейлисте от IAIMPMLDataProviderSelection использовались поля Artist и Title в качестве имени композиции, а не FileName или я делаю что-то не так?
Для этого надо делать провайдер FileInfo для плейлиста и других частей программы.
И как его использовать для фонотеки? В первой версии плагина просто вручную создавал плейлист и заполнял FileInfo, а как быть с фонотекой где плейлист создается автоматически?
А мета данные для файлов - через IAIMPExtensionFileInfoProvider
через IAIMPExtensionFileInfoProvider
Костыльно как-то заполнять по два раза поля artist, title, duration. GetFileInfo будет вызываться для каждого файла?
Если так то запрашивает интерфейс IAIMPExtensionFileSystem
Кто запрашивает? где запрашивает?
После Initialize вызывается QueryInterface класса FileInfoProvider и запрашивается интерфейс IID_IAIMPExtensionFileSystem .
запрашиваться могут разные интерфейсы, это нормально.
IAIMPExtensionFileInfoProvider вызывается при запросе информации о файле, а не при регистрации.
А запрос информации когда происходит? Вот выбрал я запись в фонотеке и нажал воспроизвести, дальше у меня появляется новый плейлист и все... метод GetFileInfo не вызывается.
IAIMPServiceFileInfo* sfi = nullptr;IAIMPFileInfo* fi = nullptr;_plugin->Core()->QueryInterface(IID_IAIMPServiceFileInfo, reinterpret_cast<void**>(&sfi));auto r = sfi->GetFileInfoFromFileURI(String("vkmusic://123"), 0, fi);
В IAIMPMLDataProviderSelection всем записям задал поле FileName: vkmusic://123123(записи же могут иметь одно и то значение?). GetFileInfo так и не вызвалось.