DLNAサーバーを実装したときにハマったことのメモ

DLNAを自前で実装したときにハマったことメモ

クライアントによって挙動が変わる

当たり前ですがクライアント実装によってあちらでは動いたのにこちらでは動かないとか結構変わります。

XMLドキュメントの要素の順序を入れ替えると動かなくなるクライアントもあったりします。

BubbleUPnP(2.6.1)

Service descriptionのXMLデータの<action>内の<argument>要素の順序を入れ替えると動作しない。

一般的な順序にしておいたほうが無難。

PS3

モデルネームが「nasne」のものは特別扱い。

「nasne」の場合、オプションメニューに削除やコピーの操作が表示される。

ただし、これだけではだめでDevice descriptionのXML要素に「<device>」の下位に「<dlna:X_DLNACAP>audio-upload,av-upload,create-item-with-OCM-destroy-item,dtcp-move,image-upload</dlna:X_DLNACAP>」が必要。

接頭辞は「dlna」でないと認識しないのでXML生成には注意。

これで「urn:schemas-upnp-org:service:ContentDirectory:1」の「DestroyObject」アクション等がPS3から呼び出せる。

PS4

定期的にNOTIFY(SSDP)を送信しないと再生中でもお構いなしに切断される。