public async Task StartScanPhotoContentAsync() { try { //root DIDLLite didllite_root = await BrowseFolderAsync("0"); foreach (Container cont_root in didllite_root.Containers) { if (cont_root.PersistentID == "picture") { DIDLLite didllite_photo = await BrowseFolderAsync(cont_root.Id); foreach (Container cont_photo in didllite_photo.Containers) { if (cont_photo.PersistentID == "picture/all") { DIDLLite didllite_allphoto = await BrowseFolderAsync(cont_photo.Id); Content content = new Content(didllite_allphoto, cont_photo.ParentID, this.PresentationURL); if (OnPhotoContentScanCompleted != null) { OnPhotoContentScanCompleted(this, new PhotoContentScanCompletedEventArgs(content)); } return; } } } } } catch { } }
private void onCurrentTrackMetaDataChanged(RaumFeldEvent args) { // val = "<DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:raumfeld="urn:schemas-raumfeld-com:meta-data/raumfeld" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/" lang="en"><item parentID="0/My Music/Albums/The%20Notwist+12" id="0/My Music/Albums/The%20Notwist+12/75725c9134fd69b824706f8a3b3030c4" restricted="1"><raumfeld:name>Track</raumfeld:name><upnp:class>object.item.audioItem.musicTrack</upnp:class><raumfeld:section>My Music</raumfeld:section><dc:title>The String</dc:title><upnp:album>12</upnp:album><upnp:artist>The Notwist</upnp:artist><upnp:genre>Punk Rock</upnp:genre><dc:creator>The Notwist</dc:creator><upnp:originalTrackNumber>7</upnp:originalTrackNumber><dc:date>1995-01-01</dc:date><upnp:albumArtURI dlna:profileID="JPEG_TN">http://192.168.0.18:47366/?artist=The%20Notwist&amp;albumArtist=The%20Notwist&amp;album=12&amp;track=The%20String</upnp:albumArtURI><res protocolInfo="http-get:*:audio/mpeg:DLNA.ORG_PN=MP3" size="5636735" duration="0:04:31.000" bitrate="163840" sampleFrequency="44100" nrAudioChannels="2" sourceName="music on jc-station" sourceType="smb" sourceID="uuid:39cb689d-3804-43da-a14e-21102a1f50ec">http://192.168.0.18:37665/redirect?uri=smb%3A%2F%2Fjc-station%2Fmusic%2F%2FMP3%2FThe%2520Notwist%2F12%2F07%2520The%2520String.mp3</res></item></DIDL-Lite>" /> if (args.ChangedValues.TryGetValue("val", out string currenttrackmetadata)) { DIDLLite didl = currenttrackmetadata.Deserialize <DIDLLite>(); if ((didl?.Items?.Count() ?? 0) != 0) { CurrentTrackMetaData = PrismUnityApplication.Current.Container.Resolve <ElementItem>(new ResolverOverride[] { new ParameterOverride("didl", didl?.Items?.FirstOrDefault()) }); AlbumArtUri = CurrentTrackMetaData.AlbumArtUri; setSelection(CurrentTrackMetaData); } } }
private async Task <DIDLLite> BrowseFolderAsync(string id) { try { if (_browseAction != null) { DIDLLite didllite = new DIDLLite(); didllite.Containers = new List <Container>(); didllite.Items = new List <Item>(); int start_from = 0; int limit = 100; bool found = false; do { _browseAction.ClearArgumentsValue(); _browseAction.SetArgumentValue("ObjectId", id); _browseAction.SetArgumentValue("BrowseFlag", "BrowseDirectChildren"); _browseAction.SetArgumentValue("Filter", "*"); _browseAction.SetArgumentValue("StartingIndex", start_from.ToString()); _browseAction.SetArgumentValue("RequestedCount", limit.ToString()); _browseAction.SetArgumentValue("SortCriteria", ""); await _browseAction.InvokeAsync(ServiceTypes.CONTENTDIRECTORY, this.ContentDirectoryControlUrl.AbsoluteUri); DIDLLite tmp_didllite = Deserializer.DeserializeXml <DIDLLite>(_browseAction.GetArgumentValue("Result")); foreach (Container container in tmp_didllite.Containers) { didllite.Containers.Add(container); } foreach (Item item in tmp_didllite.Items) { didllite.Items.Add(item); } found = (tmp_didllite.Containers.Count > 0 || tmp_didllite.Items.Count > 0); start_from += limit; }while (found); return(didllite); } return(null); } catch { return(null); } }
private async void onAVTransportURIMetaDataChanged(RaumFeldEvent args) { // val = "<DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:raumfeld="urn:schemas-raumfeld-com:meta-data/raumfeld" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/" lang="en"><container parentID="0/My Music/Albums" id="0/My Music/Albums/The%20Notwist+12" restricted="1" childCount="9"><raumfeld:name>Album</raumfeld:name><upnp:class>object.container.album.musicAlbum</upnp:class><raumfeld:section>My Music</raumfeld:section><upnp:artist>The Notwist</upnp:artist><dc:date>1995</dc:date><upnp:album>12</upnp:album><upnp:albumArtURI dlna:profileID="JPEG_TN">http://192.168.0.18:47366/?albumArtist=The%20Notwist&amp;album=12</upnp:albumArtURI><raumfeld:totalPlaytime>0:39:07</raumfeld:totalPlaytime><dc:title>12</dc:title></container></DIDL-Lite>" /> if (args.ChangedValues.TryGetValue("val", out string avtransporturimetadata)) { DIDLLite didl = avtransporturimetadata.Deserialize <DIDLLite>(); if ((didl?.Containers?.Count() ?? 0) != 0) { if (await raumFeldService.BrowseChildren(ZoneViewModelTracks, didl.Containers?.First().Id, true)) { setSelection(CurrentTrackMetaData); } else { ZoneViewModelTracks.Clear(); } } } }