ios - Upnpx LastChangeParser

标签 ios xcode upnp sonos

我正在测试 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 源代码,但无法轻易理解 BasicParserUPnPEventParser 逻辑 - 我只在 Objective-C 中工作了很长时间。我想知道 upnpx 如何解释同一个键可以有多个值的事实,仅通过 channel 属性有所不同。这是 LastChange 事件命名约定中的一个异常(exception),键通常是唯一的。事件中最后出现的 Volume 是 100,因此 upnpx 可能一直在替换 Volume 键的值。

但它并没有解释 InstanceID 编号错误的情况。你确定你做对了吗?您可以发布 NSDictionary events 的完整转储吗?

关于ios - Upnpx LastChangeParser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13186460/

相关文章:

ios - 使用事务优化 SQLite

ios - WebCore : Worker: EXC_BAD_ACCESS when connecting Safari debugger to an Xcode 8. 3 项目

windows - 音频输出(我听到的)到 UPnP 设备

c# - 如何通过c#代码查找网络上UPNP设备的IP地址(DHCP)

ios - UIViewControllerHierarchyInconsistency - 一个 View 一次最多只能有一个 View Controller

ios - 无法将类型 'UnsafeRawPointer' 的值转换为 Swift5 中的预期参数类型 'RawPointer'

Xcode:使用 Swift 将默认自定义字体添加到 SKLabelNode

Android:UPnP 设备扫描器示例

iphone - 绘制具有可变高度的 UITableViewCell 时宽度不正确

objective-c - 一般学习 Objective-C 和 Xcode 时注意到的好奇心