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

标签 python windows-7 vlc libvlc

我想知道 VLC media player 上正在播放什么(Windows 7) 使用 Python 2.7。只知道轨道/视频的详细信息就足够了。

研究:我了解到 VLC 媒体播放器有 python-bindings .我还找到了一种使用 Python 播放某些轨道的方法脚本。但是我找不到合适的方法来检查 VLC 媒体播放器上正在播放什么。

说明:我正在运行脚本。我在我的机器上手动播放我的 VLC 媒体播放器上的音轨,我希望该脚本检测并显示播放文件时出现的音轨的详细信息。

最佳答案

根据我对你问题的理解:

I have the script running. I play a audio track on my VLC manually on my machine and I want that script to detect and show the details of the track present for the file playing.

获取VLC播放器当前正在播放的项目的信息有两种可能。

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

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

Dummy code:这段代码只会显示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()

您可以获取请求库 here .

激活网页界面:打开VLC goto Tools--->Preferences-----> Main Interface如下图勾选web选项。 player1

然后单击左侧 Pane 中的 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 文件!

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

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

第二种方法: (我认为这不是您想要的!) 在这种情况下,您将使用 python 绑定(bind)本身来播放文件。 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

关于python - 如何使用 Python 在 Windows 7 上监控 VLC 媒体播放器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24178980/

相关文章:

video - 将多个传入的音频和视频流捆绑到一个容器文件中的 Linux 应用程序?

ubuntu - 将视频扩展(延长)到特定的持续时间

android - Flutter vlc播放器: App crashes on launch

Python 组 BY Cumsum

python - 检查字符串是否包含 Python 列表中的元素时出错?

python - 应用程序引擎 NeedIndexError : no matching index found

docker - 使用 docker for windows 工具箱切换到 windows 容器

python - 属性错误: module 'tensorflow' has no attribute 'init_scope' during train. py

c# - 在 Windows 7 上运行的 WPF Youtube 应用程序

c++ - 为什么我的 VS2010 native C++ 应用程序不会突然启动,并给出并排错误?