0

私はupnpxライブラリをテストしてsonosマルチルームオーディオシステムを制御しています...正常に動作しています。イベントに関する主な問題は1つだけです。このように、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 *)sender events:(NSDictionary *)events{でホールイベントと間違った値を取得していません

InstanceID = 100; Volume = 100;

そのはず ...

InstanceID = 0; Volume = 66;

誰かが私に正しい方向にアドバイスしてくれたらとても嬉しいです!

よろしくFTZ

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;
}
4

1 に答える 1

1

イベントは正しいです。upnpxソースをダウンロードしましたがBasicParserUPnPEventParserロジックを簡単に理解できませんでした。Objective-Cで長時間作業していました。upnpxは、同じキーに対して、channel属性のみが異なる複数の値を持つことができるという事実をどのように説明しているのでしょうか。これはイベントの命名規則の例外でありLastChange、キーは一般的に一意です。イベントの最後のVolume存在は100であるため、upnpxはおそらくVolume常にキーの値を置き換えています。

ただし、InstanceIDの番号の誤りについては説明していません。あなたはそれを正しく理解しましたか?eventsNSDictionaryの完全なダンプを投稿できますか?

于 2012-11-02T14:19:54.770 に答える