『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
楼主: jiluxinqing

[插件集成] 网易云音乐【支持语音播放专辑】【2020-7-14更新】

  [复制链接]

4

主题

67

帖子

515

积分

高级会员

Rank: 4

积分
515
金钱
448
HASS币
0
发表于 2019-11-10 10:47:26 | 显示全部楼层
本帖最后由 AlanGreen 于 2019-11-10 13:28 编辑
【初始化内置VLC播放器】出现错误 no function 'libvlc_new'
2019-11-10 10:45:47 ERROR (MainThread) [homeassistant.helpers.entity] Update for media_player.ha_cloud_music fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 268, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 448, in async_device_update
    await self.hass.async_add_executor_job(self.update)
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/ha_cloud_music/media_player.py", line 416, in update
    self._state = self._media.state
AttributeError: 'NoneType' object has no attribute 'state'


在 docker 外以下代码不会报错

pi@raspberrypi:~ $ python
Python 3.7.3 (default, Apr  3 2019, 05:39:12) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import vlc
>>> instance = vlc.Instance()
>>> v = instance.media_player_new()


在 docker 内虽然 pip 安装了 python-vlc,但是仍然报同样的错,好玄学。

楼主你好,我使用的是树莓派+docker安装的ha,树莓派系统已经内置安装了VLC,也安装了MPD作为服务一直在运行,可是为什么还是找不到播放器呢,请问这个报错该怎么解决呢?
回复

使用道具 举报

38

主题

402

帖子

4327

积分

元老级技术达人

积分
4327
金钱
3860
HASS币
350

教程狂人

 楼主| 发表于 2019-11-10 11:43:50 | 显示全部楼层
AlanGreen 发表于 2019-11-10 10:47
楼主你好,我使用的是树莓派+docker安装的ha,树莓派系统已经内置安装了VLC,也安装了MPD作为服务一直在运 ...

解决方法:
1。使用一下官方的配置试试,如果官方的可以,这个也应该是可以的
https://www.home-assistant.io/integrations/vlc/

2。安装一下依赖 pip install python-vlc 试试
http://github.com/shaonianzhentan
回复

使用道具 举报

38

主题

402

帖子

4327

积分

元老级技术达人

积分
4327
金钱
3860
HASS币
350

教程狂人

 楼主| 发表于 2019-11-10 11:51:18 | 显示全部楼层
BSXIAOLinzi 发表于 2019-11-8 19:34
感谢大佬分享,提供个测试反馈:
版本:2.0.6,使用DLNA播放器,HA:0.100.X
测试发现:不关闭播放器网页的 ...

这个和前端网页没什么关系,这个DLNA和MPD都有莫名其妙的问题,
MPD拿不到当前播放进度,DLNA的进度有时候会不准,目前只有内置的VLC是我自己定的,可以实时控制
http://github.com/shaonianzhentan
回复

使用道具 举报

4

主题

67

帖子

515

积分

高级会员

Rank: 4

积分
515
金钱
448
HASS币
0
发表于 2019-11-10 13:29:14 | 显示全部楼层
本帖最后由 AlanGreen 于 2019-11-10 13:31 编辑
jiluxinqing 发表于 2019-11-10 11:43
解决方法:
1。使用一下官方的配置试试,如果官方的可以,这个也应该是可以的
https://www.home-assistan ...

感谢楼主回复,目测问题出现在 docker,但是不太熟悉 docker,也不好下手。

在 docker 外以下代码不会报错
pi@raspberrypi:~ $ python
Python 3.7.3 (default, Apr  3 2019, 05:39:12) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import vlc
>>> instance = vlc.Instance()
>>> v = instance.media_player_new()

在 docker 内虽然 pip 安装了 python-vlc,重复上述操作,但是仍然报同样的错
no function 'libvlc_new'
好玄学。
回复

使用道具 举报

38

主题

402

帖子

4327

积分

元老级技术达人

积分
4327
金钱
3860
HASS币
350

教程狂人

 楼主| 发表于 2019-11-10 13:53:42 | 显示全部楼层
AlanGreen 发表于 2019-11-10 13:29
感谢楼主回复,目测问题出现在 docker,但是不太熟悉 docker,也不好下手。

在 docker 外以下代码不会报 ...

你如果是使用的树莓派的话,可以使用HAChina的镜像,啥都配置好了,刷好系统直接用
http://github.com/shaonianzhentan
回复

使用道具 举报

1

主题

83

帖子

559

积分

高级会员

Rank: 4

积分
559
金钱
476
HASS币
0
发表于 2019-11-11 23:13:38 | 显示全部楼层
jiluxinqing 发表于 2019-11-10 11:51
这个和前端网页没什么关系,这个DLNA和MPD都有莫名其妙的问题,
MPD拿不到当前播放进度,DLNA的进度有时 ...

感谢回复。那么曲线救国可以吗?比如HA的机子装VLC,然后通过VLC的DLNA链接音箱?
回复

使用道具 举报

38

主题

402

帖子

4327

积分

元老级技术达人

积分
4327
金钱
3860
HASS币
350

教程狂人

 楼主| 发表于 2019-11-12 09:57:02 | 显示全部楼层
本帖最后由 jiluxinqing 于 2019-11-12 09:59 编辑
BSXIAOLinzi 发表于 2019-11-11 23:13
感谢回复。那么曲线救国可以吗?比如HA的机子装VLC,然后通过VLC的DLNA链接音箱?
...

不用那么麻烦,你可以改代码的
1。使用编辑器打开media_player.py文件
2。使用查找功能找到 self.media_duration - 3 这一段代码
3。然后把3改大一点,这个需要你去试,你可以先改成10试试
4。然后重启HA,找个歌单再试试吧

为啥要这么做,这一段代码是判断是否下一曲的逻辑,当进度小于当前总进度则下一曲,因为DLNA的进度每个设备还不怎么一样,所以你减的越多,可能还没播完就下一曲了,所以你需要自己试试,减多少合适



http://github.com/shaonianzhentan
回复

使用道具 举报

1

主题

83

帖子

559

积分

高级会员

Rank: 4

积分
559
金钱
476
HASS币
0
发表于 2019-11-13 17:08:19 | 显示全部楼层
jiluxinqing 发表于 2019-11-12 09:57
不用那么麻烦,你可以改代码的
1。使用编辑器打开media_player.py文件
2。使用查找功能找到 self.media_du ...

收到,谢谢!
还有个和本项目无关的问题,想和你交流一下。
我在网上找到另一个基于NodeRed实现网易云音乐的例子,逻辑是把歌单的实际音乐地址抓取下来做成一个M3U格式的播放列表,推给DLNA播放器播放。但是实际测试的时候发现HA报错。报错信息是:Unknown DIDL-lite type
我直接在HA的调试界面调取服务
call service: media_player.play_media
media_content_id: https://m3u路径
media_content_type: playlist
entity_id: media_player.XXX

同样也是这个报错信息:Unknown DIDL-lite type

这个可能是什么问题?
回复

使用道具 举报

0

主题

75

帖子

445

积分

论坛积极会员

积分
445
金钱
370
HASS币
0
发表于 2019-11-13 19:10:08 | 显示全部楼层
网易云音乐【支持所有播放器】
回复

使用道具 举报

1

主题

83

帖子

559

积分

高级会员

Rank: 4

积分
559
金钱
476
HASS币
0
发表于 2019-11-13 22:18:41 | 显示全部楼层
jiluxinqing 发表于 2019-11-12 09:57
不用那么麻烦,你可以改代码的
1。使用编辑器打开media_player.py文件
2。使用查找功能找到 self.media_du ...

还有一个问题。一但开始使用你的这个播放器播放音乐后,所有HA服务均不能调用。报错:Identifier values have to increase.
出现这个问题后甚至不能调用重启服务,只能硬重启docker容器

HA 版本 0.100.2
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-6 11:36 , Processed in 0.190611 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表