fix: 优化日志输出,尝试排查延迟播放的问题

This commit is contained in:
涵曦 2024-07-28 21:42:23 +00:00
parent 12f54e3ad4
commit 5b5f957f8e

View File

@ -855,7 +855,7 @@ class XiaoMusicDevice:
async def _play(self, name="", search_key=""): async def _play(self, name="", search_key=""):
if search_key == "" and name == "": if search_key == "" and name == "":
if self.check_play_next(): if self.check_play_next():
await self.play_next() await self._play_next()
return return
else: else:
name = self.cur_music name = self.cur_music
@ -888,7 +888,7 @@ class XiaoMusicDevice:
or (name not in self._play_list) or (name not in self._play_list)
): ):
name = self.get_next_music() name = self.get_next_music()
self.log.info(f"play_next. name:{name}, cur_music:{self.cur_music}") self.log.info(f"_play_next. name:{name}, cur_music:{self.cur_music}")
if name == "": if name == "":
await self.do_tts("本地没有歌曲") await self.do_tts("本地没有歌曲")
return return
@ -899,7 +899,7 @@ class XiaoMusicDevice:
self._last_cmd = "playlocal" self._last_cmd = "playlocal"
if name == "": if name == "":
if self.check_play_next(): if self.check_play_next():
await self.play_next() await self._play_next()
return return
else: else:
name = self.cur_music name = self.cur_music
@ -914,6 +914,9 @@ class XiaoMusicDevice:
await self._playmusic(name) await self._playmusic(name)
async def _playmusic(self, name): async def _playmusic(self, name):
# 取消组内所有的下一首歌曲的定时器
self.cancel_group_next_timer()
self._playing = True self._playing = True
self.cur_music = name self.cur_music = name
self.log.info(f"cur_music {self.cur_music}") self.log.info(f"cur_music {self.cur_music}")
@ -928,10 +931,8 @@ class XiaoMusicDevice:
await self._play_next() await self._play_next()
return return
self.log.info("已经开始播放了") self.log.info(f"{name}已经开始播放了")
# 取消组内所有的下一首歌曲的定时器
self.cancel_group_next_timer()
# 设置下一首歌曲的播放定时器 # 设置下一首歌曲的播放定时器
sec = sec + self.config.delay_sec sec = sec + self.config.delay_sec
await self.set_next_music_timeout(sec) await self.set_next_music_timeout(sec)
@ -1084,14 +1085,17 @@ class XiaoMusicDevice:
def check_play_next(self): def check_play_next(self):
# 当前歌曲不在当前播放列表 # 当前歌曲不在当前播放列表
if self.cur_music not in self._play_list: if self.cur_music not in self._play_list:
self.log.info(f"当前歌曲 {self.cur_music} 不在当前播放列表")
return True return True
# 当前没我在播放的歌曲 # 当前没我在播放的歌曲
if self.cur_music == "": if self.cur_music == "":
self.log.info("当前没我在播放的歌曲")
return True return True
else: else:
# 当前播放的歌曲不存在了 # 当前播放的歌曲不存在了
if not self.xiaomusic.is_music_exist(self.cur_music): if not self.xiaomusic.is_music_exist(self.cur_music):
self.log.info(f"当前播放的歌曲 {self.cur_music} 不存在了")
return True return True
return False return False