我想在我自己的應用程序中獲取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應用中播放的歌曲的曲目信息。 –