Spotify 是否對「明星」曲目的鍵盤快捷鍵進行了調整?

Spotify 是否對「明星」曲目的鍵盤快捷鍵進行了調整?

我是 Spotify 的高級訂閱者,也是個沉迷於生產力的極客。

真正讓我惱火的一件事是沒有鍵盤快捷鍵來為曲目“加星標”(即將曲目添加到收藏夾)。我喜歡在工作時打開 Spotify 收音機,每當我聽到我真正喜歡的歌曲時,我必須不時切換並右鍵單擊曲目,然後選擇“星標”。

是否有任何 Spotify 調整/插件可以讓我使用鍵盤快捷鍵為曲目“加星標”?

答案1

當然可以,使用自動熱鍵

安裝完成後,將其放入 AutoHotkey.ahk 檔案中:

#*::
WinWait, Spotify, 
IfWinNotActive, Spotify, , WinActivate, Spotify, 
WinWaitActive, Spotify, 
MouseClick, left,  79,  90
Sleep, 100
MouseClick, left,  256,  152
Sleep, 100
return

這會加入一個 Win+Asterisk 熱鍵,為正在播放的曲目加註星標。

您可能對其他感興趣Spotify 快捷方式對於自動熱鍵。

答案2

我嘗試了其他 Autohotkey 快捷方式,但它對我不起作用(只是切換到 Spotify 並單擊了兩個死點)。我設計了以下內容,只要您選擇了“正在播放的大型藝術品”,它就可以工作:

CoordMode, Mouse, Relative
;star currently playing
+^l::
SpotifyWinHeight = 1050 ;set to 1080 - 30 for small taskbar size, just in case WinGetPos doesn't work for some reason
WinGetActiveTitle, CurWindow
WinActivate Spotify
WinWaitActive Spotify
WinGetPos,  ,  ,  , SpotifyWinHeight, Spotify
;          X  Y  W  H, we don't care about anything but height
RightClickTarget := SpotifyWinHeight - 250
ContextMenuTarget := RightClickTarget + 110
MouseMove, 100, %RightClickTarget%
Click Right
Sleep, 50
MouseMove, 180, %ContextMenuTarget%
Sleep, 50
Click
WinActivate %CurWindow%
return

它執行以下操作:

  • 儲存目前活動窗口
  • 啟用 Spotify
  • 計算點擊專輯封面相對於 Spotify 視窗的偏移量
  • 為目前正在播放的內容加註星標(透過右鍵點選圖稿,左鍵點選加註星標)
  • 恢復所有這一切之前處於活動狀態的窗口

它並不完美(如果由於某種原因你的 Spotify 大部分都掛在螢幕右側,你可能會不高興),但在大多數情況下都能完成工作。

答案3

加星標已經不是事了。

到這裡了解更新後的問答。


舊答案如下...

這是另一個自動熱鍵解決方案。有自由派評論。此外,如果需要,AutoHotkey 文件和論壇也是學習的好地方。

按 Control+Shift+* 將啟動目前歌曲。
該腳本的一個關鍵功能是,它會檢查歌曲是否已加星標,如果是,則將其保留。

^+*::
spotify = ahk_class SpotifyMainWindow
IfWinExist, %spotify%
{
;Store active window and mouse position.
WinGetActiveTitle, activeWindow
MouseGetPos x, y, winID

;Activate Spotify.
WinActivate %spotify%
WinWaitActive %spotify%

;Right click near the song title in the "Now Playing" box.
WinGetPos,  ,  ,  , spotifyHeight, %spotify%
MouseClick, Right, 100, spotifyHeight - 70, 1, 0

;Get the contents of the context menu.
WinWait, ahk_class #32768
SendMessage, 0x1E1      ; MN_GETHMENU
allContextMenuInfo := ErrorLevel

;The "Star" command is the 5th menu item.
;If the song is Unstarred the text is Star, and vice versa. But sometimes some wierd characters are included.
;The only reliable way I found is to check if the first letter is S.
menuText_StarUnstar := GetContextMenuItemText(allContextMenuInfo, 5)
StringGetPos, positionOfS, menuText_StarUnstar, S

;If S is the first letter, star the song.
notStarred := (%positionOfS% = 0)
If notStarred {
    ;Arrow down to the Star menu item and press enter.
    Send {Down}{Down}{Down}{Down}{Down}{Enter}
} Else {
    ;Just close the context menu.
    Send {Escape}
}

;Restore original window and mouse position.
WinActivate ahk_id %winID%
MouseMove %x%, %y%
}

Return

;Conext menu helper function.
GetContextMenuItemText(hMenu, nPos)
{
length := DllCall("GetMenuString"
        , "UInt", hMenu
        , "UInt", nPos
        , "UInt", 0 ; NULL
        , "Int", 0  ; Get length
        , "UInt", 0x0400)   ; MF_BYPOSITION
    VarSetCapacity(lpString, length + 1)
    length := DllCall("GetMenuString"
        , "UInt", hMenu
        , "UInt", nPos
        , "Str", lpString
        , "Int", length + 1
        , "UInt", 0x0400)
return lpString
}

答案4

你也可以試試我的Spotify 應用程序,閃爍,這是一個獨立於平台和 GUI 佈局的解決方案,只需單擊即可播放 Spotify 歌曲。

相關內容