[插件推荐] lyrics-fetcher

现在 lyrics-fetcher 已经支持爬取 lrc 格式的歌词了,用的是网易云的 api。

最近发现 emms 在歌词跳转方面不够精确,无法跳到想要的歌词,于是写个了函数,利用 lyrics-fetcher 爬取的 lrc 歌词里的时间戳来获取精确的时间,这样就可以在看歌词的时候让 emms 快速播放目标歌词了。

(use-package lyrics-fetcher
  :ensure t
  :after emms
  :bind (:map lyrics-fetcher-view-mode-map
	      ("RET" . lyrics-fetcher-neteasecloud-lyrics-jump))
  :config
  (lyrics-fetcher-use-backend 'neteasecloud)

  (defun lyrics-fetcher-neteasecloud-lyrics-jump ()
    (interactive)
    (if (derived-mode-p 'lyrics-fetcher-view-mode)
	(let* ((timestamp (save-excursion
			    (beginning-of-line)
			    (thing-at-point 'sexp ':no-properties)))
	       (minutes (string-to-number
			 (progn
			   (string-match "\\([[:digit:]]\\{2\\}\\):\\([[:digit:]]\\{2\\}\\).\\([[:digit:]]\\{2\\}\\)" timestamp)
			   (match-string 1 timestamp))))
	       (seconds (string-to-number
			 (match-string 2 timestamp)))
	       (jiffies (string-to-number
			 (match-string 3 timestamp))))
	  (if timestamp
	      (emms-seek-to (+ (* 60 minutes) seconds (* 0.01 jiffies)))
	    (message "No timestamp found!")))
    (message "This function must be called in lyrics-fetcher-view-mode!"))))

现在用 emms 听歌就很舒服了 :blush:

3 个赞