首页 > 解决方案 > 使用 Pygame 事件关闭moviepy VideoFileClip

问题描述

我正在尝试创建一个循环相同剪辑的 python 程序,直到用户按下esc键或关闭窗口。我在这里看到一个问题,建议将moviepypygame一起使用,但问题是当我运行VideoFileClip preview时,pygame.event.get()似乎没有像预期的那样编写事件。当我按下退出按钮时,程序只是重新启动剪辑,甚至没有进入第for event in pygame.event.get():22 行的循环。感谢任何帮助

from moviepy.editor import *
import pygame
import os

pygame.init()

clip = VideoFileClip('videos/nightRide.mp4')

pygame.display.set_caption("Melancholic Cat")

catImage = pygame.image.load("images/cat.png")
pygame.display.set_icon(catImage)

run = True
while run:
    
    clip.preview()
    pygame.display.init()

    keys = pygame.key.get_pressed()
    
    for event in pygame.event.get():  
        if event.type == pygame.QUIT: 
            run = False  

    if keys[pygame.K_ESCAPE]:
        run = False

pygame.display.quit()
pygame.quit()
sys.exit()

标签: pythonpygamemoviepy

解决方案


推荐阅读