支持播放列表

This commit is contained in:
shaonianzhetnan 2023-03-05 22:04:09 +08:00
parent 510c67ec2a
commit 6b42b73da6
3 changed files with 19 additions and 1 deletions

View File

@ -71,6 +71,7 @@ fm_protocol = 'cloudmusic://fm/'
qq_protocol = 'cloudmusic://qq/'
ting_protocol = 'cloudmusic://ting/'
search_protocol = 'cloudmusic://search/'
play_protocol = 'cloudmusic://play/'
# 云音乐路由表
class CloudMusicRouter():
@ -104,6 +105,13 @@ class CloudMusicRouter():
search_name = f'{search_protocol}name'
search_play = f'{search_protocol}play'
# 播放
play_list = f'{play_protocol}list'
play_radio = f'{play_protocol}radio'
play_xmly = f'{play_protocol}xmly'
play_fm = f'{play_protocol}fm'
async def async_browse_media(media_player, media_content_type, media_content_id):
print(media_content_type, media_content_id)
@ -708,6 +716,9 @@ async def async_play_media(media_player, cloud_music, media_content_id):
playlist = await cloud_music.async_search_song(keywords)
elif media_content_id.startswith(CloudMusicRouter.search_play):
playlist = await cloud_music.async_play_song(keywords)
elif media_content_id.startswith(CloudMusicRouter.play_list):
playlist = await cloud_music.async_play_playlist(keywords)
if playlist is not None:
media_player.playindex = playindex

View File

@ -322,6 +322,13 @@ class CloudMusic():
music_info = MusicInfo(id, song, singer, album, duration, url, picUrl, MusicSource.URL.value)
return [ music_info ]
# 歌单
async def async_play_playlist(self, name):
res = await self.netease_cloud_music(f'/search?limit=1&keywords={name}&type=1000')
if res['code'] == 200:
playlists = res['result']['playlists']
return await self.async_get_playlist(playlists[0]['id'])
# 音乐搜索
async def async_search_song(self, name):
ha_music_source = self.hass.data.get('ha_music_source')

View File

@ -1,7 +1,7 @@
{
"domain": "ha_cloud_music",
"name": "\u4E91\u97F3\u4E50",
"version": "2023.2.26",
"version": "2023.3.5",
"config_flow": true,
"documentation": "https://github.com/shaonianzhentan/ha_cloud_music",
"requirements": [],