0 Members and 3 Guests are viewing this topic.
prvPlayerState лишь визуализирует состояние плеера, т.е. запуск непосредственно перемотки всё равно будет осуществляться соответствующими командами, теми же acPlayerSeek?
Перемотку трека в этом случае осуществляет сам плеер, нам надо лишь вращать бобины и анимировать рулоны.
Не надо делать "клоны", лучше добавить точку доступа в существующие провайдеры acPlayerSeekBackward и acPlayerSeekForward, тогда и совместимость не нарушится и в новых скинах всё можно проще исправить.
Если будет два провайдера, выполняющих одну функцию, но в разных вариантах, то тебе придётся подключать их к одной кнопке - опять скрипты.
Или "этажерки". Функций много, кнопок мало. Либо обработчики условий, либо скрытие/видимость кнопок-клонов по условию. А в чём криминал? Я так постоянно поступаю...
одним из условий является достижение НАЧАЛА трека
Подозреваю, что в новом билде плеера изменена логика обработки команд acPlayerSeekBackward и acPlayerSeekForward. А нельзя ли оставить им их стандартное поведение, дополнив "клонами" с обновлённой логикой? В таком случае все старые скины не потребуют "фиксинга", а уж свои три "ASC AS6002 " я доведу до ума в новом редакторе.
Хотелось давно узнать, есть ли возможность создать и использовать возможность масштабирования скинов аудио-аппаратуры.О преимуществах такой функции думаю говорить не надо и догадываюсь о недостатках.
Подозреваю, что Артём пошёл моим путём, переход осуществляется не при достижении нуля, а чуть раньше, чтоб наверняка. У меня принудительный переход вперёд (дабы обойти отключенный чекбокс автоперехода) вообще с позиции 95%
и реализуем ли там полный реверс
Судя по тому, что Артём изменил реакцию на эти команды на уровне плеера, будет достаточно какого-то маркёра, указывающего обработчику осуществлять традиционную перемотку в границах трека, либо сквозную, с переходом. Где разместить этот маркёр, добавлением провайдера, или ещё как, тут Артёму виднее. Главное, чтобы оба варианта можно было использовать, в зависимости от задачи.
Перемотку трека в этом случае осуществляет сам плеер, нам надо лишь вращать бобины и анимировать рулоны.К тому же, и у этих провайдеров есть точка State, но она не работает.
Перемотка без лонгтапа, т. е. без задержки после нажатия кнопок (не убирая существующий вариант). Позиционирование стало бы намного удобней и оперативней
1. Признак режима перемотки. Когда-то давным-давно я предлагал дополнить свойство/точку доступа prvPlayerState.State ещё двумя значениями (3, 4): перемотка вперёд и перемотка назад. Это позволило бы имитировать перемотку в подобных скинах и от горячих клавиш, и ещё более упростило схему.
Проверка на 0? Без учета погрешности измерения?
Погрешности нет. На основе длительности трека рассчитывается номер кадра рулона с лентой, кадров в рулоне 200, и трек любой длительности приводится к этому числу. Эти же данные используются для остановки перемотки. И тут ноль в начале трека присутствует всегда.
Да тут простая математика: интервал перемотки задается в настройках, если при расчете новая позиция выходит за рамки трека (< 0 или > duration), то осуществляется переход на предыдущий/следующий трек, и уже от новый трек сдвигается на оставшийся интервал.В принципе, я могу сделать проход навигации через точный 0, чтобы скины могли этот момент поймать и "что-то" сделать.
Декодеры работают в поточном режиме, и декодируют они только вперед. Чтобы сделать нормальный реверс, нужно декодировать трек в память, и уже из памяти его играть. Это вполне реализуемо, но крайне требовательно к ресурсам ПК.
Такой вопрос, этот маркер нужен только для того, чтобы не сломать старые скины? Или вы хотите контролировать поведение и в новых?
Для старых скинов мне видится такой вариант: если сквозная навигация будет проходить через 0, то скрипт в старых скинах отработает и плеер перейдет в стоп (как и должно быть в старом поведении). Да, в этом плане получится, что сквозная навигация и вовсе работать не будет, но что поделать...
Есть еще такой вариант, делаю новое поведение только в AIMP6. Далее, если скин собирается в режиме совместимостью с 6-ой версией, он будет иметь новое поведение без вариантов. В этом случае, можно будет сразу реализовать и эти предложения: