diff --git a/file/cover.jpg b/file/cover.jpg new file mode 100644 index 0000000..484cdb7 Binary files /dev/null and b/file/cover.jpg differ diff --git a/file/pause.png b/file/pause.png new file mode 100644 index 0000000..944ada1 Binary files /dev/null and b/file/pause.png differ diff --git a/file/play.png b/file/play.png new file mode 100644 index 0000000..7c128d1 Binary files /dev/null and b/file/play.png differ diff --git a/file/林俊杰-光阴副本.lrc b/file/林俊杰-光阴副本.lrc new file mode 100644 index 0000000..4345b0e --- /dev/null +++ b/file/林俊杰-光阴副本.lrc @@ -0,0 +1,62 @@ +[00:00.00] 曲 COMPOSER : 林俊杰 +[00:01.00] 词 LYRICS : 易家扬 +[00:02.00] 编曲 MUSIC ARRANGEMENT : 林俊杰 +[00:03.00] 制作人 : 林俊杰 +[00:21.86] +[00:24.38]星空拉着路人 记忆碰撞年轮 +[00:29.48]最后一圈 往前奔 +[00:35.95]月晕下的孤魂 被过去戳的好疼 +[00:41.94]看来时路出神 +[00:45.12] +[00:48.54]人在赛道跑着 撑着 争着 忍着 +[00:51.49]心在黑里跪着 吼着 问着 等着 +[00:53.84]你在人海游着 抖着 躲着 沉着 +[00:57.49]我呢 目送着那些痴愚瞋 +[01:01.25]跟自己对峙过了 就别闹了 别复制问号 这胜负已分 +[01:11.64] +[01:13.27]等光阴的副本孤单又安静在天上呼唤二次人生 +[01:18.77]等翻页了之后遗憾和暗黑的物质我得让它滚 +[01:24.85]等穿越了无声的冰川无言的低谷绿芽败中求胜 +[01:31.60]我加上我们 +[01:34.97] +[01:37.15]拿那光阴的副本看看我还有 多少个不朽或是永恒 +[01:43.48]我是个到终点然而又要起跑的人 +[01:49.54]不怕未来路上愤怒的雷神 +[01:55.84]我保护我们 +[01:58.95] +[02:27.31]另外一次如果 另外一次结果 另外一次 假如我 +[02:38.34]那时的惊叹号 那些梦真没老 等我来要 +[02:48.48] +[02:51.34]等光阴的副本忽然说暂停的人生之后还有人生 +[02:57.46]等交换了所有苦闷给苍白的世界又能打几分 +[03:03.19]等听多了无声的世界无言的世间有笑也有引恨 +[03:09.28]我怀念我们 +[03:13.03] +[03:15.74]拿那光阴的副本看看我那些不忘的不退或是不肯 +[03:22.60]我输过 是没错 哼 然而我 还没认 +[03:28.24]多少哑口无语 只为听一声 +[03:34.58]我很爱我们 +[03:38.78] +[04:07.62] 曲 COMPOSER: 林俊杰 JJ LIN +[04:07.84] 词 LYRICS: 易家扬 +[04:08.06] +[04:08.27] 制作人 PRODUCER: 林俊杰 JJ LIN +[04:08.49] 配唱制作 VOCAL PRODUCTION: 林俊杰 JJ LIN +[04:08.71] 制作协力 PRODUCTION ASSISTANCE: 黄冠龙 ALEX.D / 周信廷 SHiN CHOU / 蔡凯升 Kai Tsai +[04:08.92] +[04:09.14] 编曲 MUSIC ARRANGEMENT: 林俊杰 JJ LIN +[04:09.36] 吉他 GUITAR:黄冠龙 ALEX.D +[04:09.57] 低音吉他 BASS GUITAR: Andy Peterson +[04:09.79] 鼓 DRUMS:Ash Soan +[04:10.01] 大提琴 CELLO:庄家欢 Olivia Chuang +[04:10.23] 弦乐 STRINGS:国际首席爱乐乐团 +[04:10.44] 和声编写 BACKGROUND VOCAL ARRANGEMENT: 林俊杰 JJ LIN +[04:10.66] 和声 BACKGROUND VOCALS: 林俊杰 JJ LIN +[04:10.88] +[04:11.09] 录音室 RECORDING STUDIO: THE JFJ BLUE ROOM (Singapore) / ALEX.D Studio (Taipei) / Crosstown studio (Malaysia) / The Windmill Studio (Norfolk,England) / IdeaNique Studio (Singapore) / 中国剧院录 音棚 (Beijing) +[04:11.31] 录音师 RECORDING ENGINEER: 林俊杰 JJ LIN / 黄冠龙ALEX.D / Ananth / Ash Soan / 洪俊扬 JY / 陈子健 ZJ / 李巍 +[04:11.53] +[04:11.74] 混音室 MIXING STUDIO: mixHaus (Encino, CA) +[04:11.96] 混音师 MIXING ENGINEER: Richard Furch +[04:12.18] 后期母带处理制作人 MASTERING PRODUCER: 林俊杰 JJ LIN +[04:12.40] 后期母带处理录音室 MASTERING STUDIO: Bernie Grundman Mastering, LA \ No newline at end of file diff --git a/file/林俊杰-光阴副本.wav b/file/林俊杰-光阴副本.wav new file mode 100644 index 0000000..b4d8a52 Binary files /dev/null and b/file/林俊杰-光阴副本.wav differ diff --git a/musicplayer.py b/musicplayer.py index a12ddea..77750ce 100644 --- a/musicplayer.py +++ b/musicplayer.py @@ -13,12 +13,12 @@ from PyQt6.QtGui import QPixmap, QIcon, QPalette, QColor class MusicPlayer(QMainWindow): def __init__(self): super().__init__() - self.setWindowTitle("Python 音乐播放器") + self.setWindowTitle("DreamLife|MusicPlayer") self.setGeometry(300, 200, 400, 500) self.initUI() pygame.mixer.init() - self.lyrics = [] # 解析后的歌词列表 [(时间戳, 歌词)] + self.lyrics = [] # 解析后的歌词列表 [(时间戳, 歌词)] self.current_lyric_index = 0 # 当前歌词索引 self.is_playing = False # 播放状态 self.music_length = 0 # 音乐总时长(秒) @@ -66,7 +66,7 @@ class MusicPlayer(QMainWindow): self.control_layout = QHBoxLayout() self.control_layout.setAlignment(Qt.AlignmentFlag.AlignCenter) self.play_button = QPushButton() - self.play_button.setIcon(QIcon("D:/Downloads/play.png")) + self.play_button.setIcon(QIcon("file/play.png")) self.play_button.setIconSize(QSize(52, 52)) # 明确设置图标尺寸 self.play_button.setStyleSheet("border: none;") self.play_button.clicked.connect(self.toggle_play_pause) @@ -84,7 +84,7 @@ class MusicPlayer(QMainWindow): self.central_widget.setStyleSheet(f"background-color: {color};") def load_cover(self): - cover_path = "D:/Downloads/cover.jpg" + cover_path = "file/cover.jpg" if os.path.exists(cover_path): pixmap = QPixmap(cover_path) self.cover_label.setPixmap(pixmap.scaled(256, 256, Qt.AspectRatioMode.KeepAspectRatio)) @@ -92,7 +92,7 @@ class MusicPlayer(QMainWindow): self.cover_label.setText("封面未找到") def load_lyrics(self): - lyrics_path = "D:/Downloads/林俊杰-光阴副本.lrc" + lyrics_path = "file/林俊杰-光阴副本.lrc" if os.path.exists(lyrics_path): try: with open(lyrics_path, 'r', encoding='utf-8') as file: @@ -122,7 +122,7 @@ class MusicPlayer(QMainWindow): self.pause_music() def play_music(self): - music_path = "D:/Downloads/林俊杰-光阴副本.wav" + music_path = "file/林俊杰-光阴副本.wav" if os.path.exists(music_path): try: pygame.mixer.music.load(music_path) @@ -131,7 +131,7 @@ class MusicPlayer(QMainWindow): self.start_time = time.time() self.pause_time = 0 self.timer.start(500) - self.play_button.setIcon(QIcon("D:/Downloads/pause.png")) + self.play_button.setIcon(QIcon("file/pause.png")) self.is_playing = True except Exception as e: print("播放音乐时出错:", e) @@ -143,7 +143,7 @@ class MusicPlayer(QMainWindow): pygame.mixer.music.unpause() # 直接恢复播放 self.start_time = time.time() - self.pause_time self.timer.start(500) - self.play_button.setIcon(QIcon("D:/Downloads/pause.png")) + self.play_button.setIcon(QIcon("file/pause.png")) self.is_playing = True except Exception as e: print("继续播放时出错:", e) @@ -153,7 +153,7 @@ class MusicPlayer(QMainWindow): self.pause_time = time.time() - self.start_time pygame.mixer.music.pause() self.timer.stop() - self.play_button.setIcon(QIcon("D:/Downloads/play.png")) + self.play_button.setIcon(QIcon("file/play.png")) self.is_playing = False def seek_music(self): @@ -165,7 +165,7 @@ class MusicPlayer(QMainWindow): self.current_lyric_index = self.find_lyric_index(new_time) self.update_lyrics_display() self.timer.start(500) - self.play_button.setIcon(QIcon("D:/Downloads/pause.png")) + self.play_button.setIcon(QIcon("file/pause.png")) self.is_playing = True def find_lyric_index(self, current_time):