1

しばらくこれを試しています。私がネットで見たすべての解決策はうまくいかないようです。特に、本当に簡単な方法です。

WMPLib.WindowsMediaPlayer c = new WMPLib.WindowsMediaPlayer();
IWMPMedia i = (IWMPMedia)c.currentMedia;

c.currentMedia は常に null です。

new WMPLib.WindowsMediaPlayer(); のようです。常に Windows Media Player の新しいインスタンスを作成しています。最初は、管理者として Visual Studio を実行していたのだと思いましたが、それを変更しても解決しませんでした。

どうにかして wmplayer.exe の実行中のインスタンスに接続する必要があるようですが、それを行う方法が見つかりません。

ところで。私が必要としているのは、現在再生中の曲の完全なファイル URL (またはストリーミングの場合は fullurl ですが、それは私の懸念事項ではありません) です。

4

1 に答える 1

1

あなたの質問はここで答えました。

  1. かなり簡単な方法:

    ここでWMP9プラグインを入手して、現在の曲名をWMPウィンドウのタイトルバーに配置し、FindWindow P/Invokeを使用してウィンドウを取得して曲名を取得します。少し注意が必要ですが、うまくいくはずです。

    詳細については、こちらを確認してください。

    Windows MediaPlayer9シリーズブログプラグイン

  2. はるかに複雑な方法:

    アプリケーションとWMPは異なるプロセスになるため、シナリオにはある種のプロセス間通信(IPC)が必要です。そして、.NETはこの目的のためにリモーティングを提供しています。

    以下はいくつかの有用な情報です:

    C#でWindowsMediaPlayerを操作する方法

    C#でのWindowsMediaPlayerリモーティング

SamAgainから

于 2010-10-24T22:29:48.910 に答える