From d06b3cd2a587af21fd6a8348b1ea91c98626bd3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B6=B5=E6=9B=A6?= Date: Sat, 27 Jan 2024 23:00:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=9A=8F=E6=9C=BA=E6=92=AD?= =?UTF-8?q?=E6=94=BE=E6=8C=87=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xiaomusic/config.py | 1 + xiaomusic/xiaomusic.py | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/xiaomusic/config.py b/xiaomusic/config.py index bf6d042..95a1c95 100644 --- a/xiaomusic/config.py +++ b/xiaomusic/config.py @@ -39,6 +39,7 @@ KEY_WORD_DICT = { "下一首": "play_next", "单曲循环": "set_play_type_one", "全部循环": "set_play_type_all", + "随机播放": "random_play", "关机": "stop", "停止播放": "stop", } diff --git a/xiaomusic/xiaomusic.py b/xiaomusic/xiaomusic.py index 118415e..222cb02 100644 --- a/xiaomusic/xiaomusic.py +++ b/xiaomusic/xiaomusic.py @@ -86,7 +86,7 @@ class XiaoMusic: # 下载对象 self.download_proc = None # 单曲循环,全部循环 - self.play_type = PLAY_TYPE_ONE + self.play_type = PLAY_TYPE_ALL self.cur_music = "" self._next_timer = None self._timeout = 0 @@ -355,7 +355,7 @@ class XiaoMusic: # 随机选择一个文件 music_file = random.choice(music_files) (filename, extension) = os.path.splitext(music_file) - self.log.info(f"随机到歌曲{filename}.{extension}") + self.log.info(f"随机到歌曲{filename}{extension}") return filename # 获取文件播放时长 @@ -454,6 +454,7 @@ class XiaoMusic: async def play_next(self, **kwargs): self.log.info("下一首") (name, _) = os.path.splitext(os.path.basename(self.cur_music)) + self.log.debug("play_next. name:%s, cur_music:%s", name, self.cur_music) if self.play_type == PLAY_TYPE_ALL or name == "": name = self.random_music() if name == "": @@ -471,6 +472,12 @@ class XiaoMusic: self.play_type = PLAY_TYPE_ALL await self.do_tts(f"已经设置为全部循环") + # 随机播放 + async def random_play(self, **kwargs): + self.play_type = PLAY_TYPE_ALL + await self.do_tts(f"已经设置为全部循环并随机播放") + await self.play_next() + async def stop(self, **kwargs): if self._next_timer: self._next_timer.cancel()