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

时间:2014-06-12 07:41:51

标签: python windows-7 vlc libvlc

我想知道使用Python 2.7在VLC media player(Windows 7)上播放的内容。只知道曲目/视频的细节就足够了。

研究:我发现VLC媒体播放器有python-bindings。我还发现了一种使用Python脚本播放某个音轨的方法。但我找不到合适的方法来检查VLC媒体播放器上播放的内容。

澄清:我正在运行脚本。我在我的机器上手动在我的VLC媒体播放器上播放音轨,我希望该脚本能够检测并显示文件播放的曲目细节。

1 个答案:

答案 0 :(得分:6)

根据我对你的问题的理解:

  

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

可以有两种方法来检索在VLC播放器中播放的当前项目的信息。

第一种方法:在Windows 7操作系统和VLC v2.1.3上测试

您必须首先在VLC播放器中设置Web界面,然后将其激活。然后,您可以访问此链接http://localhost:8080/requests/status.xml,从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()

你出租车获得请求lib here

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

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

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

如果您没有看到任何内容,请执行以下操作,如下图所示:转到View--->Add Interface----->Select web player3

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

第二种方法: (我认为这不是你想要的!) 这种情况是你使用python绑定本身播放文件的时候。 Here您可以找到许多不同的方法,可用于获取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