Главная » Foobar2000 » AutoHotKey скрипт для управления несколькими плеерами одновременно

AutoHotKey скрипт для управления несколькими плеерами одновременно

AutoHotkey AutoHotKey скрипт для управления несколькими плеерами одновременноС помощью этого AutoHotkey скрипта вы сможете управлять несколькими медиа-проигрывателями одновременно! По умолчанию в окна всех проигрывателей будут посылаться клавиатурные сочетания (специальные медиа-клавиши «Воспроизведение» , «Следующий трек», «Предыдущий трек» и «Стоп»). Хотя, это может создать некоторые проблемы, если вы используете Spotify и 2000 одновременно.

Скрипт определяет заголовки окон и, в частности, активное окно. Далее используется следующий алгоритм для того, чтобы послать» нужному» плееру необходимые клавиатурные сочетания:

  1. Окно, являющееся активным (определяется получением заголовка окна, к примеру)
  2. Медиа-плеер, который в данный момент проигрывает песню
  3. Плеер, используемый в системе по умолчанию

Скрипт достаточно легко приспособить для поддержки большего количества плееров; единственное, что может вызвать затруднения — как выяснить, проигрывает ли плеер в данный момент вообще что-либо. В foobar2000 заголовок окна можно настроить согласно своих предпочтений, и также для того, чтобы облегчить определение заголовка окна скрипту (DUI (Default UI):  Выставите в Preferences->Display->Default User Interface, CUI (Custom UI): Preferences->Display->Columns UI->->Main tab). Вы можете задать следующую строку форматирования заголовка, для того чтобы в заголовке появлялось слово [Playing], если проигрывается трек

В скрипте необходимо заменить путь C:\program files (x86)\foobar2000\foobar2000.exe на Ваш путь к Foobar2000

$if($and(%isplaying%,$not(%ispaused%)),'[Playing]',)

Код скрипта:

#InstallKeybdHook

SetTitleMatchMode  2
commandSpotify := 0
commandFoobar := 1

detectMusicPlayers()
{
  ; all variables are global unless prefixed with local
  global
  DetectHiddenWindows, On
  WinGetTitle, spotifyTitle, ahk_class SpotifyMainWindow
  WinGetTitle, foobarTitle, foobar2000
  WinGetTitle, currentTitle, A
  DetectHiddenWindows, Off
  spotifyTitleLength := StrLen(spotifyTitle)
  spotifyActive := InStr(currentTitle, "Spotify")
  foobarActive := InStr(currentTitle, "foobar2000")
  spotifyPlaying := spotifyTitleLength > 7
  foobarPlaying := InStr(foobar2000, "[Playing]")

  if spotifyActive or spotifyPlaying{
    commandSpotify := 1
    commandFoobar := 0
    ;MsgBox spotify active
  } else if foobarActive or foobarPlaying {
    commandSpotify := 0
    commandFoobar := 1
    ;MsgBox foobar active
  } else {
    ;MsgBox spotify not playing
    ;Use "defaults" as specified by CheckActivations
  }

}

; Check for window activation
SetTimer, CheckActivations, 300

CheckActivations:
  if WinActive("Spotify") {
    ;MsgBox Spotify activated
    commandSpotify = 1
    commandFoobar = 0
  } else if WinActive("foobar2000") {
    ;MsgBox foobar activated
    commandSpotify = 0
    commandFoobar = 1
  }

return

; 122 = play/pause handling
SC122::
detectMusicPlayers()

if commandSpotify {
  ControlSend, , {Space}, ahk_class SpotifyMainWindow
} else if commandFoobar {
  Run "C:\program files (x86)\foobar2000\foobar2000.exe" /playpause
}
return

; 110	 = PREV  handling
SC110	::
detectMusicPlayers()

if commandSpotify {
  ControlSend, , ^{Left}, ahk_class SpotifyMainWindow
} else if commandFoobar {
  Run "C:\program files (x86)\foobar2000\foobar2000.exe" /prev
}
return

; 119	 = NEXT handling
SC119	::
detectMusicPlayers()

if commandSpotify {
  ControlSend, , ^{Right}, ahk_class SpotifyMainWindow
} else if commandFoobar {
  Run "C:\program files (x86)\foobar2000\foobar2000.exe" /next
}
return

; 124	 = STOP handling
SC124	::
detectMusicPlayers()

if commandSpotify {
  ; there is no stop in spotify, use "play/pause" instead
  if spotifyPlaying {
    ControlSend, , {Space}, ahk_class SpotifyMainWindow
  }
} else if commandFoobar {
  Run "C:\program files (x86)\foobar2000\foobar2000.exe" /stop
}
return

Интересное на сегодня:
Хэндгам - пластичная игрушка, способная принимать любую форму, быть твердой и текучей, мячиком и водой! Не верится? Закажите жвачку для рук оптом, себе и друзьям.

Если если вам понравилась эта статья, вы можете подписаться на материалы этого сайта через rssRSS или emailemail, а также присоединиться ко мне в twitterTwitter, vkontakteВКонтакте или на LastFMLastFm