根据我对您问题的理解:
我正在运行脚本。我在机器上的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选项。

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

测试:启动VLC播放器并播放一些文件。访问http://localhost:8080/requests/status.xml,您将看到一个登录页面,将用户名字段留空,然后输入您在VLC中输入的密码。如果成功登录,您将看到XML文件!
如果看不到任何东西,请执行下图所示的操作:goto View--->Add Interface----->Select web

如果一切正常,请运行上面提供的脚本。您将在控制台中看到文件的信息,现在您可以修改脚本以仅获取所需的信息。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)
| 归档时间: |
|
| 查看次数: |
3824 次 |
| 最近记录: |