我已经尝试了一段时间了。我在网上看到的所有解决方案似乎都不起作用,特别是真正简单的方法。
WMPLib.WindowsMediaPlayer c = new WMPLib.WindowsMediaPlayer();
IWMPMedia i = (IWMPMedia)c.currentMedia;
c.currentMedia始终为空。
新的WMPLib.WindowsMediaPlayer();似乎总是在创建Windows Media Player的新实例。首先,我认为这是因为我是以管理员身份运行visual studio,但更改这一点没有任何帮助。
似乎我必须以某种方式连接到正在运行的wmplayer.exe实例,但却找不到这样做的方法。
顺便说一句。我需要的是一个完整的文件url为当前播放的歌曲(或完整的url,如果是流媒体,但这是我现在最不关心的)。
发布于 2010-10-25 06:29:49
你的问题回答了here。
在这里获取一个WMP9插件,它将把您当前的歌曲名称放在WMP窗口的标题栏上,并使用FindWindow P/Invoke来获取窗口和歌曲名称。它应该可以工作,尽管有一点棘手。
有关更多详细信息,请查看here。
Windows Media Player 9 Series Blogging Plug-in
由于您的应用程序和WMP将是不同的进程,因此您的场景需要某种进程间通信(IPC)。.NET为此提供了远程处理。
以下是一些有用的信息:
How to interact with Windows Media Player in C#
Windows Media Player Remoting in C#
来自SamAgain
https://stackoverflow.com/questions/4009978
复制相似问题