fix: 播放失败设置重试次数10次,解决设备失联后无限重试的问题
This commit is contained in:
parent
48a8bf3325
commit
fe54ad29e2
@ -1290,6 +1290,7 @@ class XiaoMusicDevice:
|
|||||||
self._start_time = 0
|
self._start_time = 0
|
||||||
self._duration = 0
|
self._duration = 0
|
||||||
self._paused_time = 0
|
self._paused_time = 0
|
||||||
|
self._play_failed_cnt = 0
|
||||||
|
|
||||||
self._play_list = []
|
self._play_list = []
|
||||||
|
|
||||||
@ -1479,11 +1480,18 @@ class XiaoMusicDevice:
|
|||||||
self.log.info(f"播放 {url}")
|
self.log.info(f"播放 {url}")
|
||||||
results = await self.group_player_play(url, name)
|
results = await self.group_player_play(url, name)
|
||||||
if all(ele is None for ele in results):
|
if all(ele is None for ele in results):
|
||||||
self.log.info(f"播放 {name} 失败")
|
self.log.info(f"播放 {name} 失败. 失败次数: {self._play_failed_cnt}")
|
||||||
await asyncio.sleep(1)
|
await asyncio.sleep(1)
|
||||||
if self.isplaying() and self._last_cmd != "stop":
|
if (
|
||||||
|
self.isplaying()
|
||||||
|
and self._last_cmd != "stop"
|
||||||
|
and self._play_failed_cnt < 10
|
||||||
|
):
|
||||||
|
self._play_failed_cnt = self._play_failed_cnt + 1
|
||||||
await self._play_next()
|
await self._play_next()
|
||||||
return
|
return
|
||||||
|
# 重置播放失败次数
|
||||||
|
self._play_failed_cnt = 0
|
||||||
|
|
||||||
self.log.info(f"【{name}】已经开始播放了")
|
self.log.info(f"【{name}】已经开始播放了")
|
||||||
await self.xiaomusic.analytics.send_play_event(name, sec, self.hardware)
|
await self.xiaomusic.analytics.send_play_event(name, sec, self.hardware)
|
||||||
@ -1839,7 +1847,7 @@ class XiaoMusicDevice:
|
|||||||
self._last_cmd = "play_music_list"
|
self._last_cmd = "play_music_list"
|
||||||
self.device.cur_playlist = list_name
|
self.device.cur_playlist = list_name
|
||||||
self.update_playlist()
|
self.update_playlist()
|
||||||
self.log.info(f"开始播放列表{list_name}")
|
self.log.info(f"开始播放列表{list_name} {music_name}")
|
||||||
await self._play(music_name, exact=True)
|
await self._play(music_name, exact=True)
|
||||||
|
|
||||||
async def stop(self, arg1=""):
|
async def stop(self, arg1=""):
|
||||||
|
Loading…
Reference in New Issue
Block a user