結局 MediaTomb ではなかなか埒が明かないので、DigiOn の DiXiM2 評価版を DL&WindowsXP マシンにインストールして検証。DiXiM のエンジンを採用している民生機器も多いので無難でしょう。
とりあえず検出した MediaServer のアイテムを日付の新しい順に出力する CustomFeed::UPnPAVMediaServerを作成してみたのですが、ContentDirectory サービスで Search メソッドを呼び出した結果、実体が同一のファイルが沢山返ってくることがあって悩みました。
例えば要するに EXIF や ID3 タグ内のデータによって分類された複数のコンテナ内に、実体が同一のファイルが見えるからということです。このとき実体が同じでも item@id は別のものが振られていて、id ではサプレスできません。DiXiM2 では実体のファイル名を res@dixim:filename で返しているみたいですが、拡張されたプロパティーは使いたくないですし。
てなわけで小一時間悩んだ末、RequestedCount=0 で全件取得してから url でサプレスすることにして実装してみたのですが、あまりスマートではありませんでした。
それに DiXiM Media Server では item の URL がそれぞれ http://xxx.xxx.xxx.xxx:30001/XXXX-XXXX.jpg といったようになっているのでうまくいきますが、item@id から動的にコンテンツを取得する URL(例えばhttp://xxx.xxx.xxx.xxx:30001/item.asp?id=XXXX などのような)を返すサーバではサプレスできないといった問題もあります。
何かいいアイデアはないものかとしばらく悶々としていたのですが、何気なくドキュメントに目を通していたら、実体以外の item には item@refID というプロパティが付くのでSearchCriteria にちょっと追加すればサプレス結果を取得可能だと言うことに気付いて解決。
ちなみに DiXiM2 の試用期間は 15 日間。残りは 13 日をきっています。急がないと。
あとは早く X6 とかでテストしたいなぁ > 某友人
【2006/7/23 22:31 追記】
某友人の協力を得てテストしたものの、結局 RD-X6 ではうまく item を取得できず。Search や Sort には対応していないようです。民生機器のサーバで使えないと面白くないので、結局 Browse のみでなんとかする処理をコーディング中。
One comment