Bre*_*ndt 8 c# groove audio-player
我想在我自己的应用程序中获取Microsoft Groove应用程序中当前播放曲目的跟踪信息.我在谈论Groove APP而不是REST Api.
我的第一种方法是尝试Windows.Media.Playback.BackgroundMediaPlayer从我自己的进程(app)获取(现在过时的)信息.有关开发中心文档Windows.Media.Playback.BackgroundMediaPlayer中的更多信息
我们的想法是从中获取信息,BackgroundMediaPlayer.Current但这仅适用于同一过程.而且,无论如何,这已经过时了,现在MS建议使用Windows.Media.Playback.MediaPlayer该类,但这也只能在使用MediaPlayer的同一过程中访问.
第二种方法是从系统媒体传输控制中获取信息.
对于那些不熟悉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#应用程序中调用它.
文档说这包含在Windows 10 SDK中,但我无法找到它的位置.
也许我完全错了,也许我不能在C#中使用它(因为它是一个C++接口).但我的想法是,这必须编译成一个库,我可以使用pInvoke来使用它.
如果有人能向我解释这一点,我将不胜感激.
https://learn.microsoft.com/en-us/uwp/api/Windows.Media.SystemMediaTransportControls
\n\nSystemMediaTransportControls _control = SystemMediaTransportControls.GetForCurrentView();
Windows.Foundation.UniversalApiContract.winmd 是访问 SMTC 类所需的合同。
\n\n参考这个,你应该能够获得控制权。
\n\n<Reference Include="Windows.Foundation.UniversalApiContract"> <HintPath>C:\\Program Files (x86)\\Windows Kits\\10\\References\\Windows.Foundation.UniversalApiContract\\3\xe2\x80\x8c\xe2\x80\x8b.0.0.0\\Windows.Found\xe2\x80\x8c\xe2\x80\x8bation.UniversalApiCo\xe2\x80\x8c\xe2\x80\x8bntract.winmd</HintPa\xe2\x80\x8c\xe2\x80\x8bth> </Reference>
将其添加到 Visual Studio 中的项目文件中。
\n\n我希望这就是您正在寻找的内容,无论哪种方式,这都将允许您访问“Windows.Media”命名空间。
\n| 归档时间: |
|
| 查看次数: |
847 次 |
| 最近记录: |