在vlc.py中设置VLC窗口尺寸 [英] Set Vlc window Dimensions in vlc.py
本文介绍了在vlc.py中设置VLC窗口尺寸的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用Python中的VLC打开一个视频流(UDP流)。 如何设置视频窗口的大小及其在屏幕上的位置
这是代码
import vlc
i = vlc.Instance()
p = i.media_player_new()
p.set_mrl('udp://@224.1.1.1:1234')
p.play()
推荐答案
简而言之,我认为您不能这样做,除非您为它提供一个window
可以由您控制的window
。
这涉及到将它包装在gui
中,许多人为此使用Tkinter
、wxPython
或Qt
。以下是在Linux上编写的示例。
以下是wxPython示例:
import vlc
import wx
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, "Video Frame WxPython", size=(500,400))
self.panel = wx.Panel(self, id= -1, pos=(10,10), size=(470,300))
self.play_button = wx.Button(self, -1, "Play", pos=(10,320))
self.stop_button = wx.Button(self, -1, "Pause", pos=(100,320))
self.Bind(wx.EVT_BUTTON, self.play, self.play_button)
self.Bind(wx.EVT_BUTTON, self.stop, self.stop_button)
self.panel.SetBackgroundColour(wx.BLACK)
self.Show()
def play(self,event):
vlc_options = '--no-xlib --quiet'
inst = vlc.Instance(vlc_options)
self.player = inst.media_player_new()
self.player.set_mrl('file:///home/rolf/BBB.ogv')
xid = self.panel.GetHandle()
self.player.set_xwindow(xid)
self.player.play()
def stop(self,event):
try:
self.player.pause()
except:
pass
app = wx.App()
frame = MyFrame()
app.MainLoop()
这是Tkinter版本(请原谅,我自己不使用Tkinter):
import tkinter as tk
import vlc
class myframe(tk.Frame):
def __init__(self, root, width=500, height=400, bd=5):
super(myframe, self).__init__(root)
self.grid()
self.frame = tk.Frame(self, width=450, height=350, bd=5)
self.frame.configure(bg="black")
self.frame.grid(row=0, column=0, columnspan=2, padx=8)
self.play_button = tk.Button(self, text = 'Play', command = self.play)
self.play_button.grid(row=1, column=0, columnspan=1, padx=8)
self.stop_button = tk.Button(self, text = 'Pause', command = self.pause)
self.stop_button.grid(row=1, column=1, columnspan=1, padx=8)
def play(self):
i = vlc.Instance('--no-xlib --quiet')
self.player = i.media_player_new()
self.player.set_mrl('file:///home/rolf/BBB.ogv')
xid = self.frame.winfo_id()
self.player.set_xwindow(xid)
self.player.play()
def pause(self):
try:
self.player.pause()
except:
pass
if __name__ == '__main__':
root = tk.Tk()
root.title("Video Frame Tkinter")
app = myframe(root)
root.mainloop()
这篇关于在vlc.py中设置VLC窗口尺寸的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文