提问人:JuzioMiecio520 提问时间:11/12/2023 最后编辑:JuzioMiecio520 更新时间:11/12/2023 访问量:32
Windows.Media.Control GSMTCSM 中的“访问被拒绝”
"Access is denied" in Windows.Media.Control GSMTCSM
问:
我正在尝试创建一个读取当前 Windows 音频会话的应用程序。我找到了(GSMTCSM),这似乎很有希望,但是,我遇到了两个问题:GlobalSystemMediaTransportControlsSessionManager
- 控制台应用程序无法调用任何 API,它只是说找不到解决方案。这不是通过简单的安装来解决的 - 它什么也没做。我仍然无法访问命名空间。只有在创建 UWP 应用后,我才能访问它
Windows.Media
Microsoft.Windows.SDK.Contracts
Windows.Media
- 已经在 UWP 应用程序中,我只尝试请求经理,就像这样(我知道这很混乱 - 只是一个测试)但这会引发错误(没有显示更多信息)。我不知道是什么原因造成的。我已经添加了该功能(事实上 - 所有这些都是出于绝望)并以管理员身份运行 VS,但这都没有阻止错误。
GlobalSystemMediaTransportControlsSessionManager.RequestAsync().AsTask().Wait();
System.UnauthorizedAccessException: 'Access is denied'
musicLibrary
我确实找到了这个使用 GSMTCSM 的脚本(重命名为 ),但是在克隆存储库后,我无法对其进行事件编译。这很可能是由导致我的问题 #1 的相同问题引起的。SessionManager
TL;DR:我想读取数据(标题、艺术家等)并控制主机(不包括浏览器)上当前播放音频的状态(播放、暂停、随机播放)。最好不在 UWP 中,但这是一个小问题。
答:
0赞
Arek Bomba
11/29/2023
#1
我也有类似的问题。在 VS2017 中,它甚至找不到 Windows.Media.Control 命名空间。尝试在 VS2022 上编写您的程序,并使用今年 10 月发布的 SDK。在应用程序属性中设置正确的 Win 版本。应用属性我只将 nuGet 中的 SDK 添加到引用中。
链接中的工作应用程序:https://1drv.ms/u/s!AlSEnJ1CkG5blY0RIayJVJSLImC-cw?e=hFVwCL
代码来源:使用 SystemMediaTransportControls 从其他应用获取当前播放的歌曲信息
在没有活动玩家的情况下,它会在 22 行代码中抛出 System.NullReferenceException,在其他代码行中抛出活动播放器异常。一切正常
评论