Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如何通过服务,播放媒体库 local media下的音乐? #25

Open
ghostist opened this issue Apr 14, 2023 · 4 comments
Open

如何通过服务,播放媒体库 local media下的音乐? #25

ghostist opened this issue Apr 14, 2023 · 4 comments
Labels
enhancement New feature or request

Comments

@ghostist
Copy link

我通过一系列操作,成功把NAS挂载到媒体库 local media下的文件夹了
按专辑分文件夹存放周杰伦的歌
我想通过什么服务,可以播放这些歌?最好是能文件夹(专辑)顺序或者随机播放
最终是想实现手机刷NFC,自动播放其专辑,B站上“NFC 音乐墙”只能做到刷NFC手机播放,利用HA让家里的播放器这样工作感觉会很COOL!

虽然是“cloud music”,但是版权问题很多都听不了,索性特别想听的搞到本地来

@shaonianzhentan
Copy link
Owner

目前还没有相关服务支持这一操作,后续有时间我得看看

@shaonianzhentan shaonianzhentan added the enhancement New feature or request label Apr 14, 2023
@ghostist
Copy link
Author

谢谢回复 我昨天搜了一下,通过ha左边的媒体在网页播放本地歌曲并抓包可以获取到歌曲地址,经过修改发现调用media_play.play_media服务,参数填写http://ip:8123/media/local/xxx/xxx.wav是可以播放本地歌曲的
我尝试用脚本顺序队列,连续播放没有成功,猜测是歌曲播放结束后播放器实体还是playing状态,没有idle,导致无法播放下一曲
我记得很早之前这个插件里的issues里有看到你的回复,说获取歌曲剩余播放时长实现播放进度有很多问题,估计这个问题导致
另外了解到有个music assistant的项目,不过在ha2023.3后暂时不支持了,后续更新估计要独立部署。对于简单播放有点太麻烦了…

@yzlnew
Copy link

yzlnew commented Dec 28, 2023

我也在研究这个问题,看上去 Music Assitant 是最优解了,但是小米的最新的音箱都不能在 HA 识别成 DLNA 设备了。

@sasukebinbin
Copy link

我的方案是

  1. 把NAS中Music文件夹添加到HA中的/Media,使得在HA中可以直接浏览播放
  2. 用Folder Watcher集成,获取指定文件夹中的歌曲名,例如文件夹:Favorite,最终会生成sensor.favorite
  3. 创建虚拟下拉菜单, input_select.mp3
  4. 创建自动化Local Mp3 List Update
  5. `alias: Local Mp3 List Update
    description: ""
    trigger:
  • platform: homeassistant
    event: start
  • platform: state
    entity_id:
    • sensor.favorite
  • platform: event
    event_type: folder_watcher
    event_data:
    event_type: created
  • platform: event
    event_type: folder_watcher
    event_data:
    event_type: deleted
    condition: []
    action:
  • service: input_select.set_options
    target:
    entity_id: input_select.mp3
    data:
    options: >
    {{ state_attr('sensor.favorite', 'file_list') | map('replace',
    '/media/Favorite/', '') | list }}
    mode: single
    `
  1. 创建脚本, 播放音乐, 服务如下
  2. service: media_player.play_media
    data:
    media_content_type: music
    media_content_id: /media/local/Favorite/{{states.input_select.mp3.state}}
    target:
    entity_id: media_player.google_home
  3. 创建几个虚拟开关, 例如循环播放,单曲循环
  4. 创建自动化当播放器从Playing变为Idle时检查,是否有循环播放打开.
    有的话,就选择下拉菜单的下一个选项,然后再次启动播放音乐的脚本
    如果有多个专辑,创建多个folder watcher的sensor并添加到相应的input_select的辅助下来菜单即可.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants