我想在我自己的应用程序中获取Microsoft Groove应用程序中当前播放曲目的曲目信息。我正在谈论Groove APP而不是REST Api。从Microsoft Groove Music应用程序获取当前播放曲目信息
我的第一种方法是尝试从我自己的进程(应用程序)获取Windows.Media.Playback.BackgroundMediaPlayer
(现在已过时)的信息。有关Windows.Media.Playback.BackgroundMediaPlayer
中的Dev Center Documentation的更多信息
想法是从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),所以我可以(也许)pInvoke这在我的C#应用程序。
该文档说,这是包含在Windows 10 SDK中,但我找不到在哪里。也许我完全错了,也许我不能在C#中使用它(因为它是一个C++接口)。但我的想法是,这必须编译到一个库中,我可以通过使用pInvoke来使用它。
如果有人能向我解释这一点,我们将非常感激。
Google:“groove api c#” – apocalypse
@apocalypse,再说一遍,我不是在谈论Groove REST API,请再次阅读我的文章。我正在谈论当前正在播放的曲目信息,Groove REST API对此一无所知。 REST API仅查找有关Groove库中* any *歌曲的信息,而不是您在Groove应用中播放的歌曲的曲目信息。 –