首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Upnpx LastChangeParser

Upnpx LastChangeParser
EN

Stack Overflow用户
提问于 2012-11-02 06:26:23
回答 1查看 451关注 0票数 0

我正在测试upnpx库来控制sonos多房间音响系统...工作做得很好。我对事件只有一个主要问题。如果我从sonos渲染器获得一个音量更改事件,如下所示

代码语言:javascript
复制
<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>

我得到的不是洞事件和错误的值

-(空)UPnPEvent:(BasicUPnPService*)发送方事件:(NSDictionary*)事件{

代码语言:javascript
复制
InstanceID = 100; Volume = 100;

应该是..。

代码语言:javascript
复制
InstanceID = 0; Volume = 66;

如果有人能告诉我正确的方向,我会很高兴的!

向自贸区致以最好的敬意

代码语言:javascript
复制
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;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-02 22:19:55

事件是正确的。我下载了UPnPEventParser源代码,但不能很容易地理解BasicParser和upnpx逻辑--我在Objective-C中工作了这么长时间。我想知道upnpx是如何解释同一个键可以有多个值的事实,只是channel属性不同。这是LastChange事件命名约定中的一个例外,键通常是唯一的。事件中出现的最后一个Volume是100,因此upnpx可能一直在替换Volume键的值。

不过,这并不能解释InstanceID编号错误。你确定你做对了吗?你能发布一个完整的events NSDictionary转储吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13186460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档