ddddxxx/LyricsX

Spotify 歌曲切换之后,歌词会消失 Lyrics will disappear when switch songs in Spotify

daix6 opened this issue · 13 comments

daix6 commented

搭配 Spotify 使用的时候,每当切换歌时,歌词会消失。如果重新启动 LyricsX,这个时候又会有歌词。
Lyrics will disappear when switch songs in Spotify. But if I restart LyricsX, the lyrics will show.

System: Ventura 13.0.1, Intel 芯片

I encountered the same problem.

同样的问题

I encountered the same issue as well

Same problem with apple music

vhenla commented

same

我也是遇到这个问题

  • 1

这tm不知道是什么尿性的问题

一样的问题......

一样的问题......

我发现其实是菜单栏隐藏软件,退了之后就没有这个问题了,可能有冲突吧

same

Sol1

Download -> autoRelauch.zip

autoRelauch 放到 文件,執行autoRelauch.App

Move autoRelauch to Document,Launch autoRelauch.App

Sol2

可以使用這個python 腳本來解決(適用於Apple music)
This python script can fix this issue.(Only for Apple music)

import os
import time
import subprocess
def relaunch(app_name = "LyricsX"):
    print(f"Relaunch {app_name}!")
    app_name = "LyricsX"  # Replace with the actual command to start your software
    # Quitting the application
    os.system(f"osascript -e 'tell application \"{app_name}\" to quit'")

        # Waiting for a small amount of time to ensure the application has been quit
    time.sleep(1)
        # Starting the application again
    os.system(f"osascript -e 'tell application \"{app_name}\" to activate'")

def get_current_track_info():
    apple_script = '''
    tell application "Music"
        if it is running then
            if player state is playing then
                set currentTrack to current track
                set trackName to name of currentTrack
                set artistName to artist of currentTrack
                set albumName to album of currentTrack
                return trackName & " by " & artistName & " from " & albumName
            else
                return "Music is not playing."
            end if
        else
            return "Music is not running."
        end if
    end tell
    '''
    try:
        track_info = subprocess.check_output(["osascript", "-e", apple_script], universal_newlines=True)
        return track_info.strip()
    except subprocess.CalledProcessError as e:
        return str(e)


last_track = None
while True:
    current_track = get_current_track_info()
    if current_track != last_track and current_track != "Music is not playing." and current_track != "Music is not running.":
        relaunch()
        last_track = current_track
    time.sleep(1)
   

this issue can solve it #601