如何在Python中创建一个简单的弹出视频并关闭它?

问题描述 投票:0回答:1

我正在为一所大学做一个简单的口袋妖怪战斗类型的项目,但我想通过添加每次单击按钮时播放的 2 秒小动画来添加更多视觉效果。我考虑过使用一个顶级窗口来使用 tkvideo 播放视频。它可以工作,但我不知道如何在 2 秒后或循环播放一次视频后关闭它。

有人可以给新手提供建议吗?附:我使用 Toplevel 是因为已经有一个主根窗口,玩家可以在其中单击按钮。

from tkinter import *
from tkvideo import tkvideo

window = tkinter.Toplevel()
window.title("Video PLayer")

lblVideo = Label(window)
lblVideo.pack()

player = tkvideo("Hero_Slash_Attack_Animation.mp4", lblVideo, loop=1, size=(500,500),)

player.play()

window.mainloop()

上面的代码是我用来播放辅助视频窗口的代码。但我不知道如何关闭该特定的顶层。我尝试了 w.destroy() 但它没有删除它。相反,视频只是不断循环并停留。

python user-interface tkinter window toplevel
1个回答
0
投票

您可以使用

tkVideoPlayer

例如:
import tkinter as tk
from tkVideoPlayer import TkinterVideo

root = tk.Tk()

def close_video(win):
    if win.winfo_exists():
        win.destroy()

def create_window():
    window = tk.Toplevel()
    window.lift()

    player = TkinterVideo(master=window, scaled=True)
    player.load(r"video.mp4")
    window.after(2000, lambda: close_video(window)) # close win after 2 sec
    player.bind("<<Ended>>", lambda: close_video(window)) # close the win if video ended

    player.pack(expand=True, fill="both")

    player.play() # play the video

tk.Button(root, text="Show Video", command=create_window).pack()
root.mainloop()
© www.soinside.com 2019 - 2024. All rights reserved.