2

Я хочу создать скрипт, который запускает новый плейлист Genius на основе текущей воспроизводимой дорожки для использования в LaunchBar. К сожалению, iTunes не предоставляет AppleScript никаких функций, связанных с Genius, что усложняет задачу.

Я искал в Интернете и нашел несколько решений, которые включают ручной поиск кнопки в пользовательском интерфейсе iTunes и вызов события click (пример), но они не работают в iTunes 10, и мой AppleScript-fu далеко не настолько мощный, чтобы отлаживать их.

Есть ли способ запустить плейлист Genius вне приложения iTunes? Другие методы, такие как рабочие процессы Automator или сценарии оболочки, также будут вполне приемлемыми.

1 ответ1

3

После некоторых экспериментов, я думаю, что нашел ваше решение.

tell application "System Events"
-- click the genius button on the currently playing track at top
    click button 14 of window "iTunes" of application process "iTunes"
end tell

Проведя больше экспериментов, я обнаружил следующее:

  • Кнопки 1-3 - это «стоп-сигналы» вверху слева
  • Кнопки 4-7 - это кнопки внизу слева, добавление списка воспроизведения, перемешивание, повтор, закрытие обложки.
  • Кнопка 8, кажется, гениальная кнопка в правом нижнем углу экрана, (закрыть!) и будет работать для текущей выбранной дорожки. Я полагаю, вы хотите сделать гениальный трек, который сейчас играет…
  • Кнопка 9 - это правая панель гения.
  • Кнопка 10-12 - перемотка назад, воспроизведение / пауза, перемотка вперед.
  • Кнопка 13 - эквалайзер.
  • Кнопка 14 - гениальная кнопка! (Тот, который вы хотите)
  • Кнопка 15 - выбрать (и перейти к) дорожку.
  • Кнопки 16-19 - это различные кнопки "просмотра"
  • Кнопка 20 - нулевая громкость.
  • Кнопка 21 - максимальная громкость.
  • Кнопка 22 - ошибка!

Вот и все. Спасибо за то, что подняли этот вопрос, это понимание поможет с различными идеями сценариев. :)

Редактировать:

Хорошо, немного больше копания в словарях дало мне эту идею:

tell application "System Events"
    set button_count to count every button of window "iTunes" of application process "iTunes"
    repeat with i from 1 to button_count
        set button_description to accessibility description of button i of window "iTunes" of application process "iTunes"
        if button_description is "genius" then
            set x to i
        end if
    end repeat
    if enabled of button x of window "iTunes" of application process "iTunes" then
        click button x of window "iTunes" of application process "iTunes"
    end if
end tell

Он выполняет циклическое переключение всех кнопок окна iTunes и проверяет описание доступности кнопки. Гениальные кнопки с, что неудивительно, имеют описание «гений».

В некоторых видах есть две гениальные кнопки, одна для текущей воспроизводимой песни и одна для выбранной песни. Сценарий всегда будет использовать самую последнюю из двух кнопок, которая является текущей воспроизводимой песней. Таким образом, этот AppleScript проверит, включена ли кнопка гения, и затем щелкнет по ней.

Если в данный момент нет воспроизводимой песни, но выбрана песня, тогда будет одна кнопка гения, и она будет включена и будет нажата. Если песни не воспроизводятся или не выбраны, кнопка гения не будет нажата.

Я думаю, что это функциональность, которую вы хотите! Дайте мне знать, если это работает для вас.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .