«Доступ запрещен» в Windows.Media.Control GSMTCSM ⇐ C#
-
Anonymous
«Доступ запрещен» в Windows.Media.Control GSMTCSM
Я пытаюсь создать приложение, которое считывает текущий аудиосеанс Windows. Я нашел GlobalSystemMediaTransportControlsSessionManager (GSMTCSM), который показался многообещающим, однако столкнулся с двумя проблемами:
[*]Консольное приложение не может вызывать какие-либо API Windows.Media, оно просто сообщает, что решение не найдено. Это не удалось решить простой установкой Microsoft.Windows.SDK.Contracts — ничего не дало. Мне все еще не удавалось получить доступ к пространству имен Windows.Media. Только после создания приложения UWP я смог получить к нему доступ. [*]Уже в приложении UWP я только пытался запросить менеджера, вот так (знаю, это грязно, просто проверка).
GlobalSystemMediaTransportControlsSessionManager.RequestAsync().AsTask().Wait(); Но это вызывает ошибку System.UnauthorizedAccessException: «Доступ запрещен» (дополнительная информация не отображается). Я не знаю, что является причиной этого. Я уже добавил возможность musicLibrary (фактически - все доступно от отчаяния) и запустил VS от имени администратора, но ничего из этого не помогло устранить ошибку. Я нашел этот скрипт, который использует GSMTCSM (переименованный в SessionManager), но после клонирования репозитория я не смог его скомпилировать. Скорее всего, это вызвано той же проблемой, которая вызвала мою проблему №1.
TL;DR: я хочу читать данные (название, исполнителя и т. д.) и контролировать состояние (воспроизведение, пауза, перемешивание) воспроизводимого в данный момент аудио на главном компьютере (за исключением браузеров). Желательно не внутри UWP, но это незначительная проблема.
Я пытаюсь создать приложение, которое считывает текущий аудиосеанс Windows. Я нашел GlobalSystemMediaTransportControlsSessionManager (GSMTCSM), который показался многообещающим, однако столкнулся с двумя проблемами:
[*]Консольное приложение не может вызывать какие-либо API Windows.Media, оно просто сообщает, что решение не найдено. Это не удалось решить простой установкой Microsoft.Windows.SDK.Contracts — ничего не дало. Мне все еще не удавалось получить доступ к пространству имен Windows.Media. Только после создания приложения UWP я смог получить к нему доступ. [*]Уже в приложении UWP я только пытался запросить менеджера, вот так (знаю, это грязно, просто проверка).
GlobalSystemMediaTransportControlsSessionManager.RequestAsync().AsTask().Wait(); Но это вызывает ошибку System.UnauthorizedAccessException: «Доступ запрещен» (дополнительная информация не отображается). Я не знаю, что является причиной этого. Я уже добавил возможность musicLibrary (фактически - все доступно от отчаяния) и запустил VS от имени администратора, но ничего из этого не помогло устранить ошибку. Я нашел этот скрипт, который использует GSMTCSM (переименованный в SessionManager), но после клонирования репозитория я не смог его скомпилировать. Скорее всего, это вызвано той же проблемой, которая вызвала мою проблему №1.
TL;DR: я хочу читать данные (название, исполнителя и т. д.) и контролировать состояние (воспроизведение, пауза, перемешивание) воспроизводимого в данный момент аудио на главном компьютере (за исключением браузеров). Желательно не внутри UWP, но это незначительная проблема.
Мобильная версия