我正在测试upnpx库以控制Sonos多房间音频系统...工作正常。
我的事件只有一个主要问题。
如果我从Sonos渲染器收到音量变化事件,像这样
<Event xmlns="urn:schemas-upnp-org:metadata-1-0/RCS/"><InstanceID val="0"><Volume channel="Master" val="66"/><Volume channel="LF" val="100"/><Volume channel="RF" val="100"/></InstanceID></Event>
我不是在洞事件和错误的值
-(void)UPnPEvent:(BasicUPnPService *)发送者事件:(NSDictionary *)事件{
InstanceID = 100; Volume = 100;
它应该是 ...
InstanceID = 0; Volume = 66;
如果有人可以向我建议正确的方向,我将非常高兴!
最好的祝福
自贸区
upnpxdemo[66489:1310b] BasicParser.h didStartElement: propertyset
upnpxdemo[66489:1310b] BasicParser.h didStartElement: property
upnpxdemo[66489:1310b] BasicParser.h didStartElement: LastChange
upnpxdemo[66489:1310b] BasicParser.h didEndElement: LastChange, obj: <Event xmlns="urn:schemas-upnp-org:metadata-1-0/RCS/"><InstanceID val="0"><Volume channel="Master" val="52"/><Volume channel="LF" val="100"/><Volume channel="RF" val="100"/></InstanceID></Event>
upnpxdemo[66489:1310b] LastChange - element:LastChange, value:<Event xmlns="urn:schemas-upnp-org:metadata-1-0/RCS/"><InstanceID val="0"><Volume channel="Master" val="52"/><Volume channel="LF" val="100"/><Volume channel="RF" val="100"/></InstanceID></Event>
upnpxdemo[66489:1310b] BasicParser.h didStartElement: Event
upnpxdemo[66489:1310b] BasicParser.h didStartElement: InstanceID
upnpxdemo[66489:1310b] BasicParser.h didStartElement: Volume
upnpxdemo[66489:1310b] LastChangeParser.h void propertyName name:Volume value:52
upnpxdemo[66489:1310b] BasicParser.h didStartElement: Volume
upnpxdemo[66489:1310b] LastChangeParser.h void propertyName name:Volume value:100
upnpxdemo[66489:1310b] BasicParser.h didStartElement: Volume
upnpxdemo[66489:1310b] LastChangeParser.h void propertyName name:Volume value:100
upnpxdemo[66489:1310b] LastChangeParser.h void propertyName name:InstanceID value:100
upnpxdemo[66489:1310b] Event Digctionary: {
InstanceID = 100;
Volume = 100;
}
最佳答案
该事件是正确的。我下载了upnpx源,但无法轻易理解BasicParser
和UPnPEventParser
逻辑-我在Objective-C中工作了这么长时间。我不知道upnpx如何解释您可以为同一个键具有多个值的事实,只是channel
属性不同。 LastChange
事件的命名约定是一个例外,密钥通常是唯一的。事件中最后出现的Volume
是100,因此upnpx可能一直在替换Volume
键的值。
但是,它没有解释InstanceID错误编号。您确定您正确吗?您可以发布events
NSDictionary的完整转储吗?