如何从mpc-hc实例中获取必要的媒体信息?

use*_*322 2 c# winforms

我正在尝试使用C#应用程序从我个人最喜欢的Media Player Classic中获取媒体信息.

假设我得到了我感兴趣的MPC-HC实例的窗口句柄,但WM_GETTEXT只获得了窗口标题.我对此并不满意.我还想获取播放状态(停止/暂停/播放),当前时间,总长度和文件路径.我应该能够从文件中获取所有其他东西,知道它的路径.

我首先想到的是使用AutoIt Window Info应用程序,它在我的Visible Text选项卡中获取了我想要的东西,我可以将它用作获取文本的工具,但我怎么能直接获得文本到我的C#app进行解析?

我想找到一个不涉及干扰用户活动的解决方案,比如强行提起玩家的窗口.我只想获取当前时间,播放状态和完整文件路径到我的C#应用​​程序.有一个简单的方法吗?

use*_*322 5

我发现通过启用MPC-HC Web界面,会显示一个很好的页面,其中包含我在此地址所需的所有当前玩家的统计数据:http://localhost:13579/variables.html(13579是默认端口,但您可以在选项中更改它).选中仅允许从localhost访问以保护您的秘密音乐欲望;)

该页面上的HTML有点像这样:

<html>
<head>
    <title>MPC-HC WebServer - Variables</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <link rel="stylesheet" type="text/css" href="default.css">
</head>
<body>
    <p id="filepatharg">C:\music.mp3</p>
    <p id="filepath">C:\music.mp3</p>
    <p id="filedirarg">C:\</p>
    <p id="filedir">C:\</p>
    <p id="state">1</p>
    <p id="statestring">Paused</p>
    <p id="position">85918</p>
    <p id="positionstring">00:01:25</p>
    <p id="duration">284525</p>
    <p id="durationstring">00:04:44</p>
    <p id="volumelevel">50</p>
    <p id="muted">0</p>
    <p id="playbackrate">1</p>
    <p id="reloadtime">0</p>
</body>
Run Code Online (Sandbox Code Playgroud)