I'm trying to write a basic UWP app to stream media over a LAN via DLNA. I have three PC's on the same LAN, all running W10 Pro, a Homegroup set up, Media streaming switched on and configured on all of them but when I run the method below, passing in a remote folder all I get in folders back and no files, even though I know the folders contain files.
async private void LoadMediaFiles(StorageFolder mediaServerFolder)
{
try
{
MediaFolders = await mediaServerFolder.GetFoldersAsync();
MediaList.Items.Clear();
if (MediaFolders.Count > 0)
{
MediaList.Items.Clear();
foreach (StorageFolder folder in MediaFolders)
{
MediaList.Items.Add(" + " + folder.DisplayName);
}
MediaTitle.Text = "Media folders retrieved";
}
var queryOptions = new QueryOptions();
var options = new QueryOptions();
options.FileTypeFilter.Add(".avi");
options.FileTypeFilter.Add(".mp4");
options.FileTypeFilter.Add(".mkv");
options.FileTypeFilter.Add(".wmv");
options.FolderDepth = FolderDepth.Deep;
var queryFolder = mediaServerFolder.CreateFileQueryWithOptions(queryOptions);
MediaFiles = await queryFolder.GetFilesAsync();
if (MediaFiles.Count > 0)
{
foreach (StorageFile file in MediaFiles)
{
MediaList.Items.Add(file.DisplayName);
}
MediaTitle.Text = "Media files retrieved";
}
else
MediaTitle.Text = "No files found";
}
catch (Exception ex)
{
MediaTitle.Text = "Error locating media files " + ex.Message;
}
}
To get the known DLNA servers I use:
IReadOnlyList<StorageFolder> MediaServers = await KnownFolders.MediaServerDevices.GetFoldersAsync();
and then list the folders from the selected server. When the user taps on any folder it calls the above method but I never get files, only folders.
I can stream between each of the PC's no problem using WMP or VLC etc, it's only trying to get media files via UWP to stream that it doesn't work... I just get "No files found" on every folder.