Приложение uwp AdvancedQuerySyntax для типов видеофайлов

В моем приложении uwp я получаю видеофайлы из KnownFolder.VideoLibrary и использую QueryOptions для их получения, поэтому, пользуясь тем, что я пытаюсь использовать AdvancedQuerySyntax, чтобы получать только видеофайлы, но на самом деле я получаю файлы субтитров, такие как srt также. что я тут не так делаю? синтаксис AQS, который я написал неправильно? Я думаю, что подфайлы также рассматриваются как видеофайлы в соответствии с этим синтаксисом, есть ли способ, которым я могу сузить его до получения только видеофайлов, исключая файлы субтитров? или я могу получить ссылку на документы, где я могу знать, что такое список типов расширений, этот синтаксис на самом деле вернет? Так я могу управлять этим соответственно?

КОД

            videoFileOptions = new QueryOptions()
            {
                IndexerOption = IndexerOption.OnlyUseIndexerAndOptimizeForIndexedProperties//check sort order later               
            };
            string videoFilter = "System.Kind:=System.Kind#Video";
            videoFileOptions.ApplicationSearchFilter += videoFilter;
            videoFileOptions.SetPropertyPrefetch(PropertyPrefetchOptions.VideoProperties, RequiredVideoProperties);
            videoFileOptions.SetThumbnailPrefetch(ThumbnailMode.VideosView, thumbnailRequestedSize, ThumbnailOptions.UseCurrentScale);

Это линия, где я предоставляю фильтр.

string videoFilter = "System.Kind: = System.Kind # Video";

1 ответ

Краткий ответ: .srt и другие файлы субтитров классифицируются как видеофайлы, так как любое приложение, поддерживающее воспроизведение, может получить доступ к файлам srt.

Вы можете добавить фильтр поиска приложений ext:<>.srt удалить файлы SRT из ваших результатов.

Длинный ответ: неизбежный вопрос: почему бы не иметь другой тип для вида: субтитры или что-то? Зачем включать их в Kind:Video?

Что ж, есть еще одно давление, которое идет на сопоставления Добрых дел, за исключением того, имеет ли это расширение смысл видео? Все возвращается к доступу к SD-карте в Windows Phone.

См. Для Windows 8: современное приложение, обращающееся к SD-карте, должно было объявить процесс запуска файла для любого типа файла, который они хотели видеть на SD-карте. Например, это означало, что для видеоприложения потребуется запуск файла для mp4, avi, ect. Однако в Windows Phone это не сработало бы, потому что у приложения не было возможности переопределить системное приложение по умолчанию для mp4 или avi (здесь есть другая история для другого дня). Поэтому нам нужен был другой способ предоставить приложениям доступ к файлам mp4 на SD-карте.

Решение заключалось в том, что, поскольку пользовательский интерфейс уже сказал "Предоставить этому приложению доступ к видео и вашей SD-карте", то любое приложение, имеющее как библиотеку видео, так и доступ к SD-карте, должно иметь доступ ко всем файлам Kind.Video на вашей SD-карте. Таким образом, Kind.Video означало не только "Видео файлы", но и "Файлы, к которым видео-приложение хотело бы получить доступ".

С этим немного измененным определением это означало, что любые файлы, необходимые встроенному видеоплееру, внезапно включались в отображение Kinds.Video. Отсюда и файлы.srt.

И как один из людей, ответственных за принятие добрых картографических решений, я хотел бы воспользоваться этой возможностью, чтобы извиниться за свой беспорядок и пообещать, что у меня не такой умственный мозг, как вы думаете, глядя на этот дизайн. Наверное

Другие вопросы по тегам