如何将VLC实例嵌入到TKINTER框架中



我想在tkinter框架中嵌入VLC实例。这里已经有一个类似的代码在tkinter窗口中显示终端但是我想展示VLC。这是我的VLC代码:

import vlc
Instance = vlc.Instance()
player = Instance.media_player_new()
Media = Instance.media_new('http://192.168.1.3:8080')
Media.add_option('network-caching=0')
player.set_media(Media)
player.play()

这是简单的tkinter代码

try:
    # Python2
     from Tkinter import *
except ImportError:
    # Python3
    from tkinter import *
root = Tk()
root.geometry("380x480")
root.resizable(width=False, height=False)
frame1 = LabelFrame(root, width=459, height=300, bd=5)
frame1.grid(row=1, column=0, padx=10)

我想在此tkinter框架中显示VLC流

vlc repo有一个完整的tkinter示例。

使用Python-VLC,并安装了VLC播放器(我必须插入32位版本)

    self.Instance = vlc.Instance()
    self.player = self.Instance.media_player_new()
    self.player.set_hwnd(self.label.winfo_id())#tkinter label or frame
    media = self.Instance.media_new(f)
    self.player.set_media(media)
    self.player.play()
    sleep(1.5)
    duration = self.player.get_length() / 1000
    sleep(duration-1.5)
    self.player.stop()

我遇到了相同的问题,并通过设置窗口来解决它,我希望通过set_xwindow播放视频:

player.set_xwindow(display.winfo_id())

这里的另一个答案使用 set_hwnd 对我不起作用(仅播放音频,同时给出" no frame&quort"等相同的错误)。当我将其与 set_xwindow 交换时,它开始工作并显示视频并播放声音。

对于VLC,我结束了:

Instance = vlc.Instance()
player = Instance.media_player_new()
Media = Instance.media_new('example.mp4')
player.set_xwindow(display.winfo_id())
player.set_media(Media)
player.play()

和tkinter:

root = tk.Tk()
frame = tk.Frame(root, width=700, height=600)
frame.pack()
display = tk.Frame(frame, bd=5)
display.place(relwidth=1, relheight=1)
root.mainloop()

相关内容

  • 没有找到相关文章

最新更新