2010-10-24 60 views
1

已經嘗試了一段時間了。 我在網上看到的所有解決方案似乎都不起作用,特別是真正簡單的方法。Windows Media Player中的當前播放項目(wmplayer.exe版本12)

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

c.currentMedia總是空。

看來,新的WMPLib.WindowsMediaPlayer();總是創建Windows Media Player的新實例。 首先,我認爲這是我以管理員身份運行visual studio的事實,但改變並沒有幫助。

似乎我不知何故必須連接到運行的wmplayer.exe實例,但無法找到一種方法來做到這一點。

Btw。我需要的是當前正在播放的歌曲的完整文件url(或fullurl如果流式播放,但這是我現在最擔心的問題。)

回答

1

您的問題解答here

  1. 一個漂亮的直線方式:

    得到一個WMP9此插件,將會把當前的歌曲名稱上 標題欄上的WMP窗口,並使用 FindWindow函數P/Invoke來獲取窗口 並獲取歌曲名稱。它應該工作, 雖然有點棘手。

    檢查here瞭解更多詳情。

    Windows Media Player 9 Series Blogging Plug-in

  2. 一個更復雜的方式:

    由於您的應用程序和WMP將是不同的進程,您 方案需要某種 進程間通信(IPC)的。而.NET爲此提供了Remoting。

    下面是一些有用的信息:

    How to interact with Windows Media Player in C#

    Windows Media Player Remoting in C#

SamAgain

+0

我認爲第一種方法是很醜陋和哈克(至少可以這樣說) 。我推薦使用(2)中的COM wrapper解決方案,但不是太簡單,但更有意義。 – steinar 2010-10-24 22:41:57

相關問題