AIMP Forum
AIMP for Windows => Skin Editor, Skin Engine => Вопросы / Questions => Topic started by: Black_AVP on February 25, 2016, 10:01:59
-
Пытаюсь из состояния ПАУЗЫ плеер вернуть в начало трека и запустить воспроизведение с начала:
FindObject('acPlayerStop').Execute;
FindObject('acPlayerPlay').Execute
Но воспроизведение продолжается с остановленной позиции, игнорируя команду СТОП. Такое впечатление, что она просто не успевает отработать.
Если закоментить вторую строчку, то команда СТОП срабатывает.
А вот такое:
while FindObject('prvPlayerState').Get('State') <> 'opsStop' do FindObject('acPlayerStop').Execute;
FindObject('acPlayerPlay').Execute
завешивает плеер намертво.
-
Любая из команд по управлению плеером выполняется асинхронно, поэтому и не работает. Ждать завершения команды в скрипте не получится - потоки будут ждать выполнения скрипта, а скрипт - их.
-
То есть в таких ситуациях нужно 2 отдельных последовательных скрипта?
-
Любая из команд по управлению плеером выполняется асинхронно, поэтому и не работает. Ждать завершения команды в скрипте не получится - потоки будут ждать выполнения скрипта, а скрипт - их.
Тогда понятно. Спасибо за ответ.
Но выход таки нашёлся:
PS:= FindObject('prvPlayerState');
if PS.Get('State') = 'opsPause' then PS.Set('Position', 0);
FindObject('acPlayerPlay').Execute
Тему можно удалить.
-
Пусть будет для информации.