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

5 投票
1 回答
5616 浏览
提问于 2025-04-18 09:31

我想知道在我的Windows 7电脑上,VLC媒体播放器上正在播放的内容,使用的是Python 2.7。只要知道当前播放的曲目或视频的详细信息就可以了。

研究:我了解到VLC媒体播放器有Python绑定。我还发现可以通过一个Python脚本来播放一些曲目。但是,我找不到合适的方法来检查VLC媒体播放器上正在播放的内容。

说明:我已经让脚本在运行。我在我的VLC媒体播放器上手动播放一段音频曲目,我希望这个脚本能够检测到并显示正在播放的文件的详细信息。

1 个回答

9

根据我对你问题的理解:

我已经运行了这个脚本。我在我的电脑上手动用 VLC 播放音频文件,我希望这个脚本能够检测并显示正在播放的曲目的详细信息。

要获取 VLC 播放器中当前播放项目的信息,有两种方法。

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

你需要先在 VLC 播放器中设置网络接口,然后激活它。之后,你可以通过访问这个链接 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()

你可以在这里获取 Requests 库 这里.

激活网络接口:打开 VLC,进入 工具--->首选项----->主界面,如下面所示,勾选 web 选项。 player1

然后在左侧面板点击 Lua 选项。在 password 字段输入密码,并在 source directory 字段输入 C:\Program Files\VideoLAN\VLC\lua\http,如下面所示。确保你在 source directory 提供的位置有 status.xml 文件。 player 2

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

如果什么都看不到,那么请按照下面图片所示操作:进入 视图--->添加接口----->选择 web player3

如果一切正常,现在运行我上面提供的脚本。你会在控制台看到文件的信息,现在你可以修改脚本,只获取你想要的信息。注意:用户名字段留空,只需在脚本中输入你的密码。

第二种方法: (我觉得这可能不是你想要的!) 这种情况是你使用 Python 绑定直接播放文件。 这里你可以找到许多不同的方法,用于获取当前播放项目的信息。

例如: 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

撰写回答