2

私はVB.NETプロジェクトでIntelのUPNPライブラリを使用してきましたが、ドキュメントが不足しているために困難になっています(文字通り、コードのすべての行で使用する必要のあるプロパティ/メソッドを推測しています)。私の意志でそれを曲げてください、そして私はWindows上でUPNPを使用するかなり機能的なアプリケーションを持っています。

私の問題は、デバイスホストからコントロールポイントにファイルを転送できるようにしたいということです。Googleに回答を求めて検索すると、IntelのUPNPは組み込みのWebサーバーを使用してUPNPに関連するすべてを処理し、AddVirtualDirectoryメソッドを使用してデバイスにカスタムディレクトリを追加できることがわかります。しかし、その後、運は終わります。ドキュメントも例も何もありません。

だから私の質問は:誰かがそれを使用する方法を知っていますか?私が発見したのは、このメソッドにはVirtualDirectoryHandlerとして宣言された2つのデリゲート関数が必要であるということだけですが、これらをどうするかわかりません。

ご協力いただきありがとうございます。

レスター

4

1 に答える 1

2

したがって、要件を明確にするために、コントロールポイントはデバイスから画像をプル(ダウンロード)する必要があります。デバイスは、コントロールポイントにアクセス(プッシュ)する必要はありません。他のデバイスは、コントロールポイントにすでに保存されている画像にアクセスしようとしません。したがって、デバイスのみがContentDirectoryを実装する必要があり、コントロールポイントは実装しません。

UPnP仕様バンドルのMediaServerフォルダーからUPnP-av-ContentDirectoryドキュメント(任意のバージョン)を読むことをお勧めします。CreateObject、DeleteObject、ImportResource、ExportResourceを検索します。上記の私の仮定が正しければ、実際にはそれらは必要ありませんが、UPnPでのファイル転送の意味を理解するために。私はIntelUPnPについて特に何も知らないことを認めているので、一般的なUPnPの知識とランダムな全文検索から推測します。

オブジェクトのダウンロードを有効にするには、デバイスは参照可能なメディアストレージを提示する必要があります。基本的に、デバイスにGETリクエストハンドラを実装する必要があります。UPnPは、いくつかのマルチキャストと追加のヘッダーを備えたWebサーバーのアドホックネットにすぎません。そのため、「IntelのUPNPは組み込みWebサーバーを使用しています」。すべてのUPnPデバイスはWebサーバーです。Intel UPnPには、MediaServerDevice.WebServer_OnHeaderReceiveSinkおよびにVirtualDirectoryHandlerの実装がすでに含まれていますWebServer_OnPacketReceiveSink。これをそのまま使用しMediaServerDevice.csて、ContentDirectoryを実装できる可能性があります。VirtualDirectoryHandlerSDK全体の使用法を見て、その使用方法を理解してください。

コントロールポイントダウンローダーは、ダウンロードするAVTransport.Browse画像のリソースURLを見つけるためにコマンドを実行する必要があります。IntelMediaBrowser.csは有望に見えます。UPnP ContentDirectoryのナビゲーション構造を理解するために、上記のドキュメントの冒頭も読むことをお勧めします。疑わしい場合は、IntelのツールスイートからDeviceSpyを実行し、デバイスに手動でクエリを実行します。ObjectID「0」で開始します。生のXMLDIDL応答を確認することほど、ContentDirectoryを理解するのに役立つものはありません。

コントロールポイントがリソースURLを認識したら、HTTPGETを介してダウンロードするだけです。コントロールポイントはターゲットストレージでもあるため、派手なImportObjectは必要ありません。この最後の部分は、技術的にはUPnPに関するものではありません。

于 2012-09-11T09:28:18.483 に答える