我的窗户上有个按钮。如果我点击它,我想启动VLC并流化一个URL。
def startstream():
args = ['C:/Program Files/VideoLAN/VLC/vlc.exe', 'http://dreambox:8001/1:0:19:7B:B:85:C00000:0:0:0:']
subprocess.call(args)
# Buttons
button_tnt = Button(fenster, text = "TNT Serie HD", command = startstream)
这是我想要的。
下面的一个不是我想要的那样工作,我不知道为什么不。
def startstream(url):
args = ['C:/Program Files/VideoLAN/VLC/vlc.exe', url]
subprocess.call(args)
# Buttons
button_tnt = Button(fenster, text = "TNT Serie HD", command = startstream('http://dreambox:8001/1:0:19:7B:B:85:C00000:0:0:0:'))
有了第一个代码,窗口就出现了,什么也没有发生。如果我点击按钮,流就开始了,完美。
第二个代码:我运行脚本,流立即开始。关闭VLC后,我无法通过按钮重新打开流,它没有任何功能。
但我想用第二个代码。我有多个按钮,因此只能更改每个按钮的参数。对于第一个代码,我必须为每个流编写一个新函数。
请帮帮我:(
谢谢!
最佳答案
您正在执行startstream
而不是分配它*。要给出参数,请使用以下命令:
button_tnt = Button(fenster,
text="TNT Serie HD",
command= lambda: startstream('http://dreambox:8001/1:0:19:7B:B:85:C00000:0:0:0:'))
*具体来说,就是执行
startstream(..)
并将结果分配给command
。而
lambda
将创建单击时命令将调用的函数。关于python - Python-子进程错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23705034/