|
这个先要搞明白几个概念
LMS —— Logitech Media Server的简称,现在改名叫做Lyron Media Server,LMS是服务器
Player —— Squeeze Player,Squeezelite以及各种罗技之前推出的支持LMS的转盘和播放器硬件
在Roon打开Squeezebox支持,是部分模拟了一个LMS服务器。
来自Roon官方的说法是这样的:
The first thing you should do is turn off any Logitech Media Server (LMS) instances running on your network. Roon's Squeezebox functionality works by emulating LMS--if LMS is running on your network, devices may find and associate with it, or become confused.
来源:https://help.roonlabs.com/portal/en/kb/articles/squeezebox-setup#Getting_Started
这段话说了两个意思,第一,如果要打开Roon的squeezebox支持,需要先关闭所有的LMS服务器,第二,打开Squeezebox支持是模拟了LMS服务器
所以,你的用法并不符合Roon的官方建议。当然,我也知道,同一个网络中多个LMS服务器实际上也能工作,只是Player在多个LMS服务器的情况下很可能会连上错误的服务器,或者在一些异常的情况下在不同的服务器之间横跳。
我再来解释一下为什么我说Roon只是部分的模拟了一个LMS Server。
LMS Server在现在至少有3套协议,一套是SlimProto,这个用来和Player交互,还有个长连接的Comet协议,这个在现代一般用来做信息通告,比如服务器切换了一首歌之类的。
第三套协议LMS JSON RPC,这个通常被现代的程序所使用来进行信息获取。另外LMS还有一套CLI协议(默认端口9090)
Roon模拟的LMS,只支持SlimProto和Comet,一些老的遥控App在这两个协议下基本能工作。
新的遥控App,都会使用JSON RPC协议,我的App也大量用到JSON RPC协议,这个Roon模拟的LMS并不支持。
最后,我今天测试也发现了在多LMS服务器的环境下我的App存在一些BUG(例如不能自动发现多个服务器)。我已经基本修复了这些BUG,之后会发个新版本,新版本能发现Roon模拟的服务器,但是绝大部分功能是不可用的。
我只支持标准的LMS Server,至于LMS Server用什么Player我不关心。但是非标准的LMS,抱歉那个真没精力做,而且,没有JSON RPC协议,做出来的遥控APP是很不好看的。
|
|