如何使用Python监视Windows 7上的VLC媒体播放器?

Sah*_*hil 4 python vlc windows-7 libvlc

我想知道使用Python 2.7 在VLC媒体播放器(Windows 7)上当前正在播放什么。只需了解曲目/视频的详细信息即可。

研究:我知道VLC媒体播放器具有python绑定。我还找到了一种使用Python脚本播放曲目的方法。但是我找不到合适的方法来检查VLC媒体播放器上正在播放的内容。

澄清:我正在运行脚本。我在计算机上的VLC媒体播放器上手动播放音频轨道,并且希望该脚本检测并显示正在播放文件的轨道的详细信息。

ρss*_*ρss 6

根据我对您问题的理解:

我正在运行脚本。我在机器上的VLC上手动播放音频轨道,并且希望该脚本检测并显示正在播放文件的轨道的详细信息。

检索VLC播放器中正在播放的当前项目的信息可能有两种可能性。

第一种方法:在Windows 7 OS和VLC v2.1.3上测试

您必须先在VLC播放器中设置Web界面,然后再将其激活。然后,您可以通过访问此链接从XML文件访问当前正在播放的曲目的所有信息http://localhost:8080/requests/status.xml。您可以在python中创建一个简单的脚本,该脚本将访问上面的链接并获取信息。

虚拟代码:该代码将仅显示VLC播放器中当前正在播放的文件的完整信息,您可以尝试提取所需的内容:

import requests
def getInfo():
    s = requests.Session()
    s.auth = ('', 'password')# Username is blank, just provide the password
    r = s.get('http://localhost:8080/requests/status.xml', verify=False)
    print r.text

getInfo()
Run Code Online (Sandbox Code Playgroud)

您可以在此处获取Requests lib 。

激活网络界面:打开VLC转到Tools--->Preferences-----> Main Interface,如下图所示,勾选该web选项。 玩家1

然后单击Lua左窗格上的选项。在password字段中输入密码,然后在字段中输入C:\Program Files\VideoLAN\VLC\lua\httpsource directory如下所示。验证您在中提供的位置是否具有status.xml文件source directory玩家2

测试:启动VLC播放器并播放一些文件。访问http://localhost:8080/requests/status.xml,您将看到一个登录页面,将用户名字段留空,然后输入您在VLC中输入的密码。如果成功登录,您将看到XML文件!

如果看不到任何东西,请执行下图所示的操作:goto View--->Add Interface----->Select web 玩家3

如果一切正常,请运行上面提供的脚本。您将在控制台中看到文件的信息,现在您可以修改脚本以仅获取所需的信息。PS:用户名字段为空,只需在脚本中输入密码即可。

第二种方法:(我认为这不是您想要的!)这种情况是您将使用python绑定本身播放文件时。 在这里,您可以找到许多可用于获取VLC中当前播放项目信息的方法。

对于一个实例:get_length(self)给定当前正在播放的项目的长度,get_title()获取标题号,get_state(self)知道玩家是在玩游戏还是在暂停/停止。get_mrl()给出轨道的位置,并且最后还包含轨道名称,因此您可以弄清楚如何使用python从位置字符串中获取轨道名称。

虚拟代码

import vlc

def setup_player(filename):
    vlc_instance = vlc.Instance()
    media = vlc_instance.media_new(filename)
    player = vlc_instance.media_player_new()
    player.set_media(media)
    print media.get_mrl()# File location to get title ;)
    print player.get_length()#Time duration of file
    print player.get_state()#Player's state

setup_player(filename)#Put file name/location here
Run Code Online (Sandbox Code Playgroud)