AIMP Forum
AIMP for Windows => Дополнения / Addons => Разработка / Development => Topic started by: elecco on January 23, 2020, 19:37:07
-
Возможно ли сделать управление плеером через Local API или Remote API аналогично действиям кнопок вверх/вниз (передвижение выделения по плейлисту) и запуск по Enter выделенного?
-
Можно через Local API
-
а можно уточнить через какой интерфейс? IAIMPAction?
-
интерфейсы доступа к плейлисту описаны в файле apiPlaylists. Вам придется полностью написать все действия с нуля - получить индекс сфокусированного трека в видимом плейлисте, пересчитать его, назначить
-
Правильно ли я понимаю?
IAIMPPlaylist* pl = nullptr;
if(SUCCEEDED(mPlaylistManager->GetActivePlaylist(&pl))) {
int max = pl->GetItemCount();
IAIMPPropertyList *list = nullptr;
if(SUCCEEDED(pl->QueryInterface(IID_IAIMPPropertyList, reinterpret_cast<void**>(&list)))) {
int selected = 0;
if(SUCCEEDED(list->GetValueAsInt32(AIMP_PLAYLIST_PROPID_FOCUSINDEX, &selected))) {
selected++;
if(selected > max) { selected = max; }
list->SetValueAsInt32(AIMP_PLAYLIST_PROPID_FOCUSINDEX, selected);
}
}
}
при этом движется пунктирная рамка, но само выделение трека остается на месте
-
Да, правильно.
В плейлисте три вида выделений:
1. сфокусированная запись
2. выбранная запись
3. проигрываемая запись
-
не получается двигать выделение трека, через какое свойство это делается?
через AIMP_PLAYLIST_PROPID_PLAYBACKCURSOR, AIMP_PLAYLIST_PROPID_PLAYINGINDEX и AIMP_PLAYLIST_PROPID_FOCUSINDEX не то что нужно
-
AIMP_PLAYLISTITEM_PROPID_SELECTED ?
-
AIMP_PLAYLISTITEM_PROPID_SELECTED ?
не совсем...
опытным путем выяснено: для получения того что нужно необходимо менять два свойства AIMP_PLAYLIST_PROPID_FOCUSINDEX и AIMP_PLAYLISTITEM_PROPID_SELECTED
это правильно или что то делаю не так?
если правильно, то остается вопрос с запуском трека по выделенному треку(аналогично нажатию enter) - необходимо самому перемещать AIMP_PLAYLIST_PROPID_PLAYINGINDEX?
-
Нет, эти индексы лишь визуализация. А PlayingIndex - readonly. Вам нужен сервис IAIMPServicePlayer из apiPlayer