मैं यूपीएनपी उपकरणों के लिए अपने नेटवर्क को स्कैन करने के लिए भयानक Cling
लाइब्रेरी का उपयोग कर रहा हूं। मेरा लक्ष्य एक छोटे से डीएलएनए लाइब्रेरी ब्राउज़र को फेंकना है ताकि मैं तकनीक सीख सकूं। मैं अब तक सक्षम हूं 1. नेटवर्क को स्कैन करें और यूपीएनपी डिवाइस कनेक्ट करें, 2. प्रत्येक रिमोट डिवाइस को स्कैन करें और यह निर्धारित करें कि इसमें एक डीएलएनए सेवा चल रही है, और 3. ज्ञात नोड्स के तत्काल बच्चों को ब्राउज़ करें। संक्षेप में, यह मेरा विधि है कि इस सब के चलाने के लिए सक्षम है:क्लिंग में सभी DLNA रूट स्टोरेज निर्देशिकाएं प्राप्त करें?
public void remoteDeviceAdded(Registry registry, RemoteDevice device) {
logger.debug("remote device added: {}[{}]", device.getDetails().getFriendlyName(),
device.getType().getType());
if (device.getType().getType().equals("MediaServer")) {
for (RemoteService service : device.getServices()) {
if (service.getServiceType().getType().equals("ContentDirectory")) {
// '1' is Music, '2' is Video, '3' is Pictures
this.service.getControlPoint().execute(new Browse(service, "3", BrowseFlag.DIRECT_CHILDREN) {
@Override public void received(ActionInvocation arg0,
DIDLContent didl) {
logger.debug("found {} items.", didl.getItems().size());
}
@Override public void updateStatus(Status arg0) { };
@Override public void failure(ActionInvocation arg0, UpnpResponse arg1, String arg2) { };
});
}
}
}
}
मुझे पता है, यह शायद एक भयानक गंदगी की तरह लग रहा है और यह है, लेकिन यह काम करता है :) जब मैं एक डिबगर में छोड़, मैं देख सकता है कि मुझे क्या मिला है। हालांकि, गाइड here से निर्देशों के विपरीत, मुझे कोई भी वास्तविक मीडिया आइटम वापस नहीं मिलता है, केवल ब्राउज़ परिणाम में स्टोरेज निर्देशिकाएं।
Music
All Music
Artists
Fleetwood Mac
...
Albums
...
Video
All Video
Folders
...
मेरा प्रश्न यह है, क्या इन फ़ोल्डरों ब्राउज़ करें और पदानुक्रम के माध्यम से चढ़ाई करने के लिए सबसे आसान तरीका है: के रूप में DLNA तो जैसे एक पदानुक्रम में चीजों का आयोजन करता है इस तरह की समझ में आता है? मैं पहले से ही एक बिंदु पर हूं जहां मैं यूपीएनपी डीएलएनए सर्वर से जुड़ा हूं जिसे मैं ढूंढ रहा था, अब मैं इन रूट स्टोरेज निर्देशिकाओं को कैसे प्राप्त करूं? ऊपर दिए गए ब्राउज़ कमांड में, मुझे वास्तव में "संगीत" या "वीडियो" या पसंद प्राप्त करने के लिए कुछ अनुक्रमणिका का एक स्ट्रिंग प्रस्तुति पास करना होगा। मैं स्टोरेज निर्देशिका के शीर्ष स्तर को कैसे प्राप्त करूं, फिर मैं उन निर्देशिकाओं में से प्रत्येक को कैसे ब्राउज़ कर सकता हूं? मेरा लक्ष्य कम से कम एक साधारण ब्राउज़र बनाना है।
आइटम प्राप्त करने के बाद आप फ़ाइल सूची कैसे प्राप्त कर पाए? मुझे कंटेनर मिला है, लेकिन getItems() हमेशा खाली है। – Nifhel
didl.getContainers()। (0) .getItems() हमेशा खाली रहता है – Nifhel