0 Members and 1 Guest are viewing this topic.
Может все-таки стоит учитывать данные передаваемые при добавлении файлов в список воспроизведения (AIMPClassic.AIMP_PLS_AddFiles)? Просто при активной работе со списком состоящим из 15-20 тысяч файлов тормоза просто жуткие (для людей с одноядерным процессором это наверное вообще жуть)
AIMP_PLS_Find - не нужен, в принципе-то, легко можно обойтись связкой AIMP_PLS_Count + AIMP_PLS_Info.
AIMP_PLS_ID_PlayingRePlay - можно обойтись связкой AIMP_PLS_ID_ActiveSet + AIMP_PLS_PlayFileAFailIfNotExists - в последней, если флаг стоит в False и файла такого в активном плейлисте нет - файл будет добавлен и начнется проигрывание.
AIMP_PLS_ID_PlayingSetTrackIndex - можно тоже обойтись, но слишком коряво получится =), поэтому такую добавлю.
Согласен, тогда еще один вопрос. Как долго живет PLS_ID: HPLS, есть ли гарантия того, что это значение не поменяется во время жизни списка (допустим при изменении положения закладки списка воспроизведения)
Согласен, так и пробовал делать, однако работоспособность этой связки зависит слишком от многого, например запускалось ли воспроизведение списка до этого, всех ньюансов не скажу, но работать
Столько же, сколько живет сам плейлист.можно тогда попробовать через IAIMP2Player function PlayTrack(ID: HPLS; ATrackIndex: Integer): Boolean; stdcall;
AIMP_FILE_RATING_CHANGED = 15;AIMP_FILE_TAG_CHANGED = 16;// for File Info CallBack Types (AIMP_FILE_xxxxx_CHANGED) TAIMPFileInfoChanged = procedure (User: DWORD; CallBackType: DWORD; FileName: PWideChar); stdcall;
wc.cbSize := SizeOf(wc); wc.style := cs_hredraw or cs_vredraw; wc.lpfnWndProc := @WindowProc; wc.cbClsExtra := 0; wc.cbWndExtra := 0; wc.hInstance := HInstance; wc.hIcon := LoadIcon(0,idi_application); wc.hCursor := LoadCursor(0, IDC_ARROW); wc.hbrBackground := 0; wc.lpszMenuName := nil; wc.cbSize:=sizeof(wc); wc.lpszClassName := AimpToMCHelperWNDClassName; if RegisterClassEx(wc) = 0 then MessageBox(0, PCHAR(SysErrorToStr(GetLastError)), '', 0);