我想知道使用Python 2.7在VLC media player(Windows 7)上播放的内容。只知道曲目/视频的细节就足够了。
研究:我发现VLC媒体播放器有python-bindings。我还发现了一种使用Python脚本播放某个音轨的方法。但我找不到合适的方法来检查VLC媒体播放器上播放的内容。
澄清:我正在运行脚本。我在我的机器上手动在我的VLC媒体播放器上播放音轨,我希望该脚本能够检测并显示文件播放的曲目细节。
答案 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
选项。
然后单击左侧窗格中的Lua
选项。在password
字段中输入密码,然后在C:\Program Files\VideoLAN\VLC\lua\http
字段中输入source directory
,如下所示。验证您在source directory
中提供的位置是否有status.xml文件。
测试:启动VLC播放器并播放一些文件。访问http://localhost:8080/requests/status.xml
,您将看到一个登录页面,将用户名字段留空并输入您在VLC中输入的密码。如果您成功登录,您将看到XML文件!
如果您没有看到任何内容,请执行以下操作,如下图所示:转到View--->Add Interface----->Select web
如果一切正常,请运行我上面提供的脚本。您将在控制台中看到该文件的信息,现在您可以修改脚本以仅获取所需的信息。 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