小爱音箱播放局域网NAS上的音乐(httpRandomMusic) |
您所在的位置:网站首页 › 小爱音箱系统更新在哪里 › 小爱音箱播放局域网NAS上的音乐(httpRandomMusic) |
小爱音箱播放局域网NAS上的音乐(httpRandomMusic) 手上有一个小爱音箱Pro,拿来给小朋友玩,顺带查下天气,控制下家里电视、空调等家电,一直使用挺方便的。老早以前听歌都是百度一首首下载,然后放在电脑上用千千静听播放,后来版权的重视及在线音乐流行,用网易云音乐、QQ音乐等播放器在线听歌逐渐流行起来,原来下载的歌一直放在电脑上也没播放过。随着小爱音箱搭配的QQ音乐能听的歌越来越少,听歌就只能开着电脑用蓝牙播放,每次播放都得开电脑是个挺麻烦的事情。家里有个群晖NAS一直待机,一直期待小爱官方能够开放播放本地音乐这个功能。期待了很久,官方论坛也翻了不少,发现很多人期待这个功能,官方也没有迹象表达要实现这个功能的意思。近期看到github上有个项目让小爱音箱播放局域网NAS上的音乐,项目是用python写的,博主应该是对相关配置比较熟悉,README说明写的相对简略,折腾了几天才算简单实现,略做记录,有相同需求的朋友可以参考。 作者github项目地址:GitHub - zanjie1999/httpRandomMusic: 让小爱音箱播放局域网NAS上的音乐 无法访问github,移动云盘下载链接:https://caiyun.139.com/m/i?0O5CrOaRKuBVK 提取码:7vTa 基本配置:1、群晖NAS 2、小爱音箱 实现目标:小爱音箱播放局域网NAS上的音乐 原理:在NAS上实现http服务,op.lan解析为NAS的局域网地址,语音操作小爱同学去访问音乐。具体为何是op.lan这个域名,原理不详。原作者写的比较简略,讲讲我遇到的问题及解决办法。 1、nas上安装Python3 群晖的套件中心有python3,套件中心搜索python3直接安装即可。 2、下载并打开`httpRandomMusic.py`,编辑`fileDir`变量,填写你存放音乐的文件夹的完整路径。群晖NAS打开SMB功能后,在文件夹路径直接访问\\192.168.0.101\Files 即可访问文件夹,或者如下图PC访问共享文件夹地址来访问。一直以为程序中fileDir用这个地址可以直接访问,实际在python文件中fileDir为 /volume1/Files 这种格式。 3、修改路由器的hosts,加入这样一行,或者直接将服务器主机名改成`op` 修改路由器hosts 可以用软路由直接配置。我用的是TL-WDR5620千兆版,查找了很多资料没找到普通路由器修改hosts的方法。搜到了一个网页:使用群晖的DNS Server应用搭建内网DNS服务器,可以实现内网DNS解析,解析不了的再用公网DNS就可以了。 参考链接: 使用群晖的DNS Server应用搭建内网DNS服务器|日新博客 进入套件中心安装DNS Server应用 安装完成后,打开DNS Server 左侧菜单选择区域 然后选择新增master区域 在创建Master区域内填写想要解析的域名,op.lan,主DNS服务器填写群晖的IP地址。在路由器DHCP选项设置IP地址绑定,让自己的群晖都设置一个固定的IP地址方便管理,以后可以通过自己设定的域名访问群晖。 4、设置成功后,修改电脑DNS用nslookup 测试是否能够正常解析 上图所示为正常解析。 测试过程中出现如上图所示直接用nslookup op.lan解析失败,但是用nslookup op.lan 192.168.0.104可以正常解析为群晖DNS地址。这种问题,我这解决方案是把IPV6关掉就可以了。 5、群晖控制面板启用ssh或者telnet功能,连接NAS后,用管理员账户密码登陆终端提示符为$符,然后用sudo -i同样的账户密码切换到管理员模式,终端提示符为#符。 6、修改NAS本机resolv.conf文件,屏蔽第一行nameserver那一行,新增op.lan 192.168.0.104 root@chen-synology:~# vi /etc/resolv.conf #nameserver 192.168.1.1 op.lan 192.168.0.104 ~ "/etc/resolv.conf" 2L, 45C written root@chen-synology:~# nslookup op.lan Server: 127.0.0.1 Address: 127.0.0.1#53 Name: op.lan Address: 192.168.0.104 默认NAS的解析地址为192.168.1.1 修改为192.168.0.104 7、运行httpRandomMusic脚本,注意脚本是python3语言。我的NAS装了Python3后,python2和python3都有,指令要使用python3。使用python2会提示报错。如果执行正常,会输出提示文件夹内有xxfiles。在电脑上用浏览器访问http://op.lan:65533 ,可以看到一个播放器界面,能够正常播放出fileDir设置的那个目录里的音乐。确保小爱音箱重新获取ip地址后DNS设置为NAS的地址。我登陆不了小爱的shell,直接把路由器DHCP的DNS设置为NAS的IP地址,小爱断电重主启。 root@chen-synology:/volume1/Files# python3 httpRandomMusic.py Server: 127.0.0.1 Address: 127.0.0.1#53 Name: op.lan Address: 192.168.0.104 12 files / 192.168.0.110 - - [20/Jul/2023 20:57:35] "GET / HTTP/1.1" 302 - /Walkin%20in%20the%20Air.mp3 /volume1/music/Oceanborn/Walkin in the Air.mp3 192.168.0.110 - - [20/Jul/2023 20:57:35] "GET /Walkin%20in%20the%20Air.mp3 HTTP/1.1" 200 - ---------------------------------------- Exception happened during processing of request from ('192.168.0.110', 39748) Traceback (most recent call last): File "/var/packages/py3k/target/usr/local/lib/python3.8/socketserver.py", line 316, in _handle_request_noblock self.process_request(request, client_address) File "/var/packages/py3k/target/usr/local/lib/python3.8/socketserver.py", line 347, in process_request self.finish_request(request, client_address) File "/var/packages/py3k/target/usr/local/lib/python3.8/socketserver.py", line 360, in finish_request self.RequestHandlerClass(request, client_address, self) File "/var/packages/py3k/target/usr/local/lib/python3.8/socketserver.py", line 720, in __init__ self.handle() File "/var/packages/py3k/target/usr/local/lib/python3.8/http/server.py", line 427, in handle self.handle_one_request() File "/var/packages/py3k/target/usr/local/lib/python3.8/http/server.py", line 415, in handle_one_request method() File "httpRandomMusic.py", line 108, in do_GET shutil.copyfileobj(f, self.wfile) File "/var/packages/py3k/target/usr/local/lib/python3.8/shutil.py", line 205, in copyfileobj fdst_write(buf) File "/var/packages/py3k/target/usr/local/lib/python3.8/socketserver.py", line 799, in write self._sock.sendall(b) BrokenPipeError: [Errno 32] Broken pipe 8、如何使用小爱同学打开小怪 然后以下三条指令三选一 指令 功能 播放服务器的音乐 按着上次的进度继续播放(没有进度就是从头放) 从头播放服务器的音乐 按修改时间倒序播放(先放最后放进文件夹的文件) 随机播放服务器的音乐 随机播放(播放列表打乱,不会重复随机到同一首) 查看了作者的说明,需要注意指令的准确性。 Enjoy! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |