From 668237401eb13d3e05a53ec43a823ac517017f18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B6=B5=E6=9B=A6?= Date: Mon, 21 Oct 2024 22:53:37 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B0=9D=E8=AF=95=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=81=9C=E6=AD=A2=E5=90=8E=E8=87=AA=E5=8A=A8=E6=92=AD=E6=94=BE?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xiaomusic/xiaomusic.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/xiaomusic/xiaomusic.py b/xiaomusic/xiaomusic.py index 286dd2a..b7b8b75 100644 --- a/xiaomusic/xiaomusic.py +++ b/xiaomusic/xiaomusic.py @@ -1187,7 +1187,6 @@ class XiaoMusicDevice: self._download_proc = None # 下载对象 self._next_timer = None - self._timeout = 0 self._playing = False # 播放进度 self._start_time = 0 @@ -1677,14 +1676,17 @@ class XiaoMusicDevice: # 设置下一首歌曲的播放定时器 async def set_next_music_timeout(self, sec): self.cancel_next_timer() - self._timeout = sec async def _do_next(): - await asyncio.sleep(self._timeout) + await asyncio.sleep(sec) try: self.log.info("定时器时间到了") - self._next_timer = None - await self._play_next() + if self._next_timer: + self._next_timer = None + await self._play_next() + else: + self.log.info("定时器时间到了但是不见了") + except Exception as e: self.log.error(f"Execption {e}") @@ -1760,13 +1762,17 @@ class XiaoMusicDevice: await self.do_tts(f"收到,{minute}分钟后将关机") def cancel_next_timer(self): + self.log.info("cancel_next_timer") if self._next_timer: self._next_timer.cancel() self.log.info(f"下一曲定时器已取消 {self.device_id}") self._next_timer = None + else: + self.log.info("下一曲定时器不见了") def cancel_group_next_timer(self): devices = self.xiaomusic.get_group_devices(self.group_name) + self.log.info(f"cancel_group_next_timer {devices}") for device in devices.values(): device.cancel_next_timer()