【问题标题】:Current playing item in Windows Media Player (wmplayer.exe ver. 12)Windows Media Player 中的当前播放项目 (wmplayer.exe ver. 12)
【发布时间】:2010-10-24 19:22:06
【问题描述】:

已经尝试了一段时间了。 我在网上看到的所有解决方案似乎都不起作用,尤其是非常简单的方法。

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

c.currentMedia 始终为空。

似乎 new WMPLib.WindowsMediaPlayer();始终创建 Windows Media Player 的新实例。 首先,我认为这是我以管理员身份运行 Visual Studio 的事实,但改变它并没有帮助。

似乎我必须以某种方式连接到正在运行的 wmplayer.exe 实例,但无法找到这样做的方法。

顺便说一句。我需要的是当前正在播放的歌曲的完整文件 url(如果是流媒体,则为 fullurl,但这是我现在最不关心的问题。)

【问题讨论】:

    标签: c# .net mp3 windows-media-player wmplib


    【解决方案1】:

    您的问题已回答here

    1. 一个非常直接的方法:

      在此处获取一个 WMP9 插件,它将您当前的歌曲名称放在 WMP 窗口的标题栏,并使用 FindWindow P/Invoke 获取窗口 并获取歌曲名称。它应该工作, 虽然有点棘手。

      查看here了解更多详情。

      Windows Media Player 9 Series Blogging Plug-in

    2. 一个更复杂的方法:

      由于您的申请和 WMP 将是不同的流程,因此您的 场景需要某种 进程间通信(IPC)。和 .NET 为此提供了远程处理。

      以下是一些有用的信息:

      How to interact with Windows Media Player in C#

      Windows Media Player Remoting in C#

    来自SamAgain

    【讨论】:

    • 我认为第一种方法非常丑陋和hacky(至少可以说)。我建议使用 (2) 中的 COM 包装器解决方案,也许不太简单,但更有意义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多