如何在C#中与Windows Media Player交互

eri*_*ric 9 c# windows media wmp

我正在寻找一种与独立完整版Windows Media Player进行交互的方法.
大多数情况下,我需要知道当前播放曲目的路径.

iTunes SDK让这非常简单,但不幸的是,使用Windows Media Player真的没有任何办法,至少在.Net(C#)中没有任何大量使用pinvoke,我不太满意.

谢谢

只是为了澄清:我不想在我的应用程序中嵌入一个新的Windows Media Player实例,而是控制/读取"真正的"完整版Windows Media Player,由用户单独启动

Mar*_*son 7

只需添加对wmp.dll的引用(\ windows\system32\wmp.dll)

using WMPLib;
Run Code Online (Sandbox Code Playgroud)

然后您可以实例化媒体播放器

var Player = new WindowsMediaPlayer();
// Load a playlist or file and then get the title 
var title = Player.controls.currentItem.name;
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅以编程方式创建Windows Media Player控件

  • 这种方法无法与"独立"WMP实例交互. (7认同)

小智 5

对于远程Windows Media Player,您可以使用IWMPRemoteMediaServices接口来控制独立的Windows Media Player.并且您应该能够从WMP播放器对象中读取所需的所有信息,例如标题或文件名.不幸的是,SDK中没有C#smaple代码.您可以从这里获取文件:http://d.hatena.ne.jp/punidama/20080227查找文件WmpRemote.zip原来它来自这里:http://blogs.msdn.com/ericgu/archive/2005 /06/22/431783.aspx

然后你必须转换为WindowsMediaPlayer对象:RemotedWindowsMediaPlayer rm = new RemotedWindowsMediaPlayer(); WMPLib.WindowsMediaPlayer myPlayer = this.GetOcx()as WMPLib.WindowsMediaPlayer;

那你去..


Ale*_*eby 4

我的https://social.msdn.microsoft.com/Forums/vstudio/en-US/dbd43d7e-f3a6-4087-be06-df17e76b635d/windows-media-player-remoting-in-c?forum=clr书签,但尚未对其进行测试。只是一个指向正确方向的指针。它不是官方的,需要进行一些挖掘,但您应该获得一个围绕 Windows Media Player 的相当简单的包装器(它仍然会在幕后使用 PInvoke - 但您不会看到它)。

希望有帮助。

哦,我误会了。我以为您正在谈论控制当前运行的 Windows Media Player 实例。如果您自己托管 Windows Media Player,那么 WMPLib 无疑是更好的解决方案。

  • 该链接已被 404ed。有人可以修复它吗?谢谢 :) (17认同)