首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从Microsoft Groove Music应用程序获取当前播放曲目信息

从Microsoft Groove Music应用程序获取当前播放曲目信息
EN

Stack Overflow用户
提问于 2017-09-26 02:46:17
回答 1查看 2.4K关注 0票数 15

我想在我自己的应用程序中获取Microsoft Groove应用程序中当前播放曲目的曲目信息。我说的是Groove应用,而不是REST Api。

我的第一个方法是尝试从我自己的进程(app)中获取Windows.Media.Playback.BackgroundMediaPlayer (现在已经过时)信息。有关Dev Center Documentation中的Windows.Media.Playback.BackgroundMediaPlayer的更多信息

我们的想法是从BackgroundMediaPlayer.Current获取信息,但这只在相同的过程中起作用。再说一次,这已经过时了,现在MS建议使用Windows.Media.Playback.MediaPlayer类,但这也只能在使用MediaPlayer的相同进程中访问。

第二种方法是从System Media Transport Controls获取信息。

对于那些不熟悉SMTC的人,这里是我要说的(例如,当你从键盘上跳过/播放/暂停时的小弹出窗口):

上面链接的关于SMTC的文章展示了如何在你的应用程序中使用这些控件,而我想做的事情基本上正好相反。

有没有人有你认为可行的其他方法?

编辑

因此,我发现使用原生ISystemMediaTransportControlsInterop接口可能是可行的:

https://msdn.microsoft.com/en-us/library/windows/desktop/dn892315(v=vs.85).aspx

更确切地说,是ISystemMediaTransportControlsInterop::GetForWindow方法:

https://msdn.microsoft.com/en-us/library/windows/desktop/dn892316(v=vs.85).aspx

但是我不知道如何调用这个方法,不知道使用什么库(dll),所以我可以(也许)在我的C#应用程序中使用pInvoke。

文档上说这是Windows10SDK中包含的,但我找不到它在哪里。

也许我完全错了,也许我不能在C#中使用它(因为它是一个C++接口)。但我的想法是,这必须编译成一个库,我可以通过使用pInvoke来使用它。

如果有人能给我解释一下,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2017-10-10 13:19:32

https://docs.microsoft.com/en-us/uwp/api/Windows.Media.SystemMediaTransportControls

SystemMediaTransportControls _control = SystemMediaTransportControls.GetForCurrentView();

Windows.Foundation.UniversalApiContract.winmd是访问SMTC类所需的约定。

参考这一点,你应该能够获得控制权。

<Reference Include="Windows.Foundation.UniversalApiContract"> <HintPath>C:\Program Files (x86)\Windows Kits\10\References\Windows.Foundation.UniversalApiContract\3‌​.0.0.0\Windows.Found‌​ation.UniversalApiCo‌​ntract.winmd</HintPa‌​th> </Reference>

将其添加到visual studio中的项目文件中。

我希望这就是你想要的,不管怎样,这将允许你访问"Windows.Media“命名空间。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46412157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档