我正在創(chuàng)建 GUI 來播放視頻文件。問題是當我暫停視頻時,播放按鈕無法重新播放該視頻,我必須再次選擇視頻文件。注意:因為我想在同一個 tkinter 窗口中顯示視頻,所以我不使用 OpenCV imshow 命令。相反,我使用“window.after”方法。以下是我的代碼:我嘗試使用“self.pause”變量來控制暫停狀態(tài)。當我單擊暫停按鈕時,這個布爾變量變?yōu)?True。但是,當我再次單擊“播放”按鈕時,我找不到合適的位置將其設為 False。from tkinter import *from tkinter import messageboxfrom tkinter import filedialogimport PIL.Image, PIL.ImageTkimport cv2class videoGUI: def __init__(self, window, window_title): self.window = window self.window.title(window_title) top_frame = Frame(self.window) top_frame.pack(side=TOP, pady=5) bottom_frame = Frame(self.window) bottom_frame.pack(side=BOTTOM, pady=5) self.pause = False # Parameter that controls pause button self.canvas = Canvas(top_frame) self.canvas.pack() # Select Button self.btn_select=Button(bottom_frame, text="Select video file", width=15, command=self.open_file) self.btn_select.grid(row=0, column=0) # Play Button self.btn_play=Button(bottom_frame, text="Play", width=15, command=self.play_video) self.btn_play.grid(row=0, column=1) # Pause Button self.btn_pause=Button(bottom_frame, text="Pause", width=15, command=self.pause_video) self.btn_pause.grid(row=0, column=2) self.delay = 15 # ms self.window.mainloop() def open_file(self): self.pause = False self.filename = filedialog.askopenfilename(title="Select file", filetypes=(("MP4 files", "*.mp4"), ("WMV files", "*.wmv"), ("AVI files", "*.avi"))) print(self.filename)如果我在“play_video”函數(shù)中編寫以下代碼:self.pause = False暫停按鈕不起作用。因為“window.after”方法會自動調用“play_video”函數(shù)并使“self.pause”為False。因此,暫停按鈕將不起作用。
3 回答

繁星coding
TA貢獻1797條經驗 獲得超4個贊
只需添加 play_video(self) 方法:
if self.pause == True:
self.pause = False
return
添加回答
舉報
0/150
提交
取消