2017-09-25 6 views
4

自分のアプリでMicrosoft Grooveアプリで現在の再生トラックのトラック情報を取得したいと考えています。私はGroove APPについて言及しており、REST APIについては言及していません。Microsoft Groove Musicアプリから現在の再生トラック情報を取得

私の最初のアプローチは、自分のプロセス(アプリ)からWindows.Media.Playback.BackgroundMediaPlayer(現在は廃止された)情報を取得しようとすることでした。 Dev Center Documentation

Windows.Media.Playback.BackgroundMediaPlayerアイデアについての詳細情報はBackgroundMediaPlayer.Currentから情報を取得することでしたが、同じプロセスでのみ動作。とにかくこれは廃止されました。現在、Windows.Media.Playback.MediaPlayerクラスを使用することをお勧めしますが、これはMediaPlayerが使用されているのと同じプロセスでのみアクセス可能です。

2番目の方法は、System Media Transport Controlsから情報を取得することです。 SMTCについて

enter image description here

記事: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

しかし、私はどのようにこのメソッドを呼び出すかわからないので、私は(多分)私のC#アプリでこれをpInvokeできるように(dll)を使用するライブラリ。

ドキュメントでは、これはWindows 10 SDKに含まれていると言われていますが、どこにあるのかわかりません。

多分私は間違っているかもしれないし、おそらくC#でこれを使うことはできません(C++インターフェイスなので)。しかし私の考えは、これをライブラリにコンパイルし、pInvokeを使って使用できるということでした。

誰かが私にこのことを説明できるのであれば、非常に感謝しています。

+0

Google:「groove api c#」 – apocalypse

+0

@apocalypse、もう一度Groove REST APIについて語っているわけではありません。私はGroove REST APIが何も知らない現在の再生トラック情報について話しています。 REST APIは、Grooveアプリケーションで再生している曲のトラック情報ではなく、Grooveライブラリの*任意の*曲に関する情報を検索するだけです。 –

答えて

0

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"名前空間へのアクセスが可能になります。

関連する問題