diff --git a/xiaomusic/config.py b/xiaomusic/config.py
index e65a8d3..7cdfafa 100644
--- a/xiaomusic/config.py
+++ b/xiaomusic/config.py
@@ -145,6 +145,9 @@ class Config:
)
convert_to_mp3: bool = os.getenv("CONVERT_TO_MP3", "false").lower() == "true"
delay_sec: int = int(os.getenv("XIAOMUSIC_DELAY_SEC", 3)) # 下一首歌延迟播放秒数
+ continue_play: bool = (
+ os.getenv("XIAOMUSIC_CONTINUE_PLAY", "false").lower() == "true"
+ )
def append_keyword(self, keys, action):
for key in keys.split(","):
diff --git a/xiaomusic/static/setting.html b/xiaomusic/static/setting.html
index 26470da..17a8228 100644
--- a/xiaomusic/static/setting.html
+++ b/xiaomusic/static/setting.html
@@ -147,6 +147,12 @@ var vConsole = new window.VConsole();
+
+
+
diff --git a/xiaomusic/xiaomusic.py b/xiaomusic/xiaomusic.py
index a743d21..eee0f0a 100644
--- a/xiaomusic/xiaomusic.py
+++ b/xiaomusic/xiaomusic.py
@@ -115,6 +115,7 @@ class XiaoMusic:
self.music_path_depth = self.config.music_path_depth
self.remove_id3tag = self.config.remove_id3tag
self.convert_to_mp3 = self.config.convert_to_mp3
+ self.continue_play = self.config.continue_play
def update_devices(self):
self.device_id_did = {} # key 为 device_id
@@ -1178,9 +1179,14 @@ class XiaoMusicDevice:
# 继续播放被打断的歌曲
async def check_replay(self):
if self.isplaying() and not self.isdownloading():
- # 继续播放歌曲
- self.log.info("现在继续播放歌曲")
- await self._play()
+ if not self.config.continue_play:
+ # 重新播放歌曲
+ self.log.info("现在重新播放歌曲")
+ await self._play()
+ else:
+ self.log.info(
+ f"继续播放歌曲. self.config.continue_play:{self.config.continue_play}"
+ )
else:
self.log.info(
f"不会继续播放歌曲. isplaying:{self.isplaying()} isdownloading:{self.isdownloading()}"
@@ -1277,7 +1283,14 @@ class XiaoMusicDevice:
ret = None
try:
audio_id = await self._get_audio_id(name)
- if self.config.use_music_api:
+ if self.config.continue_play:
+ ret = await self.xiaomusic.mina_service.play_by_music_url(
+ device_id, url, _type=1, audio_id=audio_id
+ )
+ self.log.info(
+ f"play_one_url continue_play device_id:{device_id} ret:{ret} url:{url} audio_id:{audio_id}"
+ )
+ elif self.config.use_music_api:
ret = await self.xiaomusic.mina_service.play_by_music_url(
device_id, url, audio_id=audio_id
)
@@ -1295,6 +1308,8 @@ class XiaoMusicDevice:
async def _get_audio_id(self, name):
audio_id = 1582971365183456177
+ if not (self.config.use_music_api or self.config.continue_play):
+ return str(audio_id)
try:
params = {
"query": name,