嘗試使用 Tkinter 構建視頻播放串列。目前我有一個 mp4 陣列,名稱將傳遞到 tkintervideo 以加載。
我在如何等待第一個視頻結束才能進入第二個視頻時遇到問題。
root = Tk()
playlist = ["New_Year_Champagne.mp4","demo.mp4","car.mp4"]
videoplayer = TkinterVideo(master=root, scaled=True, pre_load=False)
for item in playlist:
has_video_ended = False
videoplayer.load(item)
videoplayer.pack(expand=True, fill="both")
videoplayer.play() # play the video
videoplayer.bind("<<Ended>>", video_ended )
root.update()
root.mainloop()
事實上,在執行 root.update() 之后,它會進入播放串列的下一次迭代。
我還能嘗試什么?
uj5u.com熱心網友回復:
問題是您在任何視頻結束之前立即加載所有視頻。您應該在<<Ended>>處理程式中加載下一個視頻。
這是一個簡單的例子:
import functools
import tkinter as tk
from tkVideoPlayer import TkinterVideo
def play_next_video(event, videoplayer, playlist):
next_video = next(playlist, None)
print('Next is:', next_video)
if not next_video:
return
# Play new video only after end of current
videoplayer.load(next_video)
videoplayer.play()
if __name__ == "__main__":
root = tk.Tk()
videoplayer = TkinterVideo(master=root, scaled=True, pre_load=False)
# Use 'iter' to work with 'next' in callback
playlist = iter(["test.mp4", "videoplayback.mp4"])
# After end of video, use callback to run next video from playlist
videoplayer.bind(
"<<Ended>>",
functools.partial(
play_next_video,
videoplayer=videoplayer,
playlist=playlist,
),
)
# Play first video from playlist
videoplayer.load(next(playlist))
videoplayer.pack(expand=True, fill="both")
videoplayer.play()
root.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/407820.html
標籤:
上一篇:如何在標簽上填充影像的位置?
