parent
632e411c6e
commit
980772bf9c
@ -1001,7 +1001,7 @@ class XiaoMusicDevice:
|
|||||||
sec, url = await self.xiaomusic.get_music_sec_url(name)
|
sec, url = await self.xiaomusic.get_music_sec_url(name)
|
||||||
await self.group_force_stop_xiaoai()
|
await self.group_force_stop_xiaoai()
|
||||||
self.log.info(f"播放 {url}")
|
self.log.info(f"播放 {url}")
|
||||||
results = await self.group_player_play(url)
|
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} 失败")
|
||||||
await asyncio.sleep(1)
|
await asyncio.sleep(1)
|
||||||
@ -1187,22 +1187,23 @@ class XiaoMusicDevice:
|
|||||||
self.log.exception(f"Execption {e}")
|
self.log.exception(f"Execption {e}")
|
||||||
|
|
||||||
# 同一组设备播放
|
# 同一组设备播放
|
||||||
async def group_player_play(self, url):
|
async def group_player_play(self, url, name=""):
|
||||||
device_id_list = self.xiaomusic.get_group_device_id_list(self.group_name)
|
device_id_list = self.xiaomusic.get_group_device_id_list(self.group_name)
|
||||||
tasks = [self.play_one_url(device_id, url) for device_id in device_id_list]
|
tasks = [self.play_one_url(device_id, url, name) for device_id in device_id_list]
|
||||||
results = await asyncio.gather(*tasks)
|
results = await asyncio.gather(*tasks)
|
||||||
self.log.info(f"group_player_play {url} {device_id_list} {results}")
|
self.log.info(f"group_player_play {url} {device_id_list} {results}")
|
||||||
return results
|
return results
|
||||||
|
|
||||||
async def play_one_url(self, device_id, url):
|
async def play_one_url(self, device_id, url, name):
|
||||||
ret = None
|
ret = None
|
||||||
try:
|
try:
|
||||||
|
audio_id = await self._get_audio_id(name)
|
||||||
if self.config.use_music_api:
|
if self.config.use_music_api:
|
||||||
ret = await self.xiaomusic.mina_service.play_by_music_url(
|
ret = await self.xiaomusic.mina_service.play_by_music_url(
|
||||||
device_id, url
|
device_id, url, audio_id=audio_id
|
||||||
)
|
)
|
||||||
self.log.info(
|
self.log.info(
|
||||||
f"play_one_url play_by_music_url device_id:{device_id} ret:{ret} url:{url}"
|
f"play_one_url play_by_music_url device_id:{device_id} ret:{ret} url:{url} audio_id:{audio_id}"
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
ret = await self.xiaomusic.mina_service.play_by_url(device_id, url)
|
ret = await self.xiaomusic.mina_service.play_by_url(device_id, url)
|
||||||
@ -1213,6 +1214,23 @@ class XiaoMusicDevice:
|
|||||||
self.log.exception(f"Execption {e}")
|
self.log.exception(f"Execption {e}")
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
async def _get_audio_id(self, name):
|
||||||
|
audio_id = 1582971365183456177
|
||||||
|
try:
|
||||||
|
params = {
|
||||||
|
"query": name,
|
||||||
|
"queryType": 1,
|
||||||
|
"offset": 0,
|
||||||
|
"count": 6,
|
||||||
|
"timestamp": int(time.time_ns() / 1000)
|
||||||
|
}
|
||||||
|
response = await self.xiaomusic.mina_service.mina_request('/music/search', params)
|
||||||
|
audio_id = response['data']['songList'][5]['audioID'] # QQ音乐为搜索结果的第6首歌
|
||||||
|
self.log.debug(f"_get_audio_id. name: {name} songId:{audio_id}")
|
||||||
|
except Exception as e:
|
||||||
|
self.log.error(f"_get_audio_id {e}")
|
||||||
|
finally:
|
||||||
|
return str(audio_id)
|
||||||
# 设置下一首歌曲的播放定时器
|
# 设置下一首歌曲的播放定时器
|
||||||
async def set_next_music_timeout(self, sec):
|
async def set_next_music_timeout(self, sec):
|
||||||
self.cancel_next_timer()
|
self.cancel_next_timer()
|
||||||
|
Loading…
Reference in New Issue
Block a user