执行两次播放视频的函数时出错

2024-10-02 06:37:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个问题,当我尝试运行两次相同的函数(这是一个从文件夹播放随机视频的函数)时会发生。我在尝试创建一个“for循环”时发现了这个问题,该循环将以确定的次数重放函数。它似乎不是一个特定的错误,它只是通过“if语句”来解决它,我接下来将向您展示这个语句

if (vid.isOpened()== False):
        print("El archivo de mierda no se pudo abrir")

所以在我的屏幕上会弹出信息“El archivo de mierda no se pudo abrir”。如果我试图注释掉那个“If语句”,第二次函数被忽略,第二次视频无法播放。如何避免或解决此问题?整个代码是下一个代码:

import cv2
import numpy as np
import os, random

nombr = random.choice(os.listdir(r"C:\\Users\\JLHI6\\Desktop\\CODE\\Catu\\videos"))
videa = r"C:\\Users\\JLHI6\\Desktop\\CODE\\Catu\\videos\\" + nombr
vid = cv2.VideoCapture(videa)

def correr_video():    
    if (vid.isOpened()== False):
        print("El archivo de mierda no se pudo abrir")

    while (vid.isOpened()):
        ret, frame = vid.read()
        if ret == True:
            cv2.imshow("Frame", frame)
            if cv2.waitKey(25) & 0xFF == ord("q"):
                break

        else:
            break

    vid.release()
    cv2.destroyAllWindows()

correr_video()
correr_video()

Tags: 函数noimportifde语句cv2el
1条回答
网友
1楼 · 发布于 2024-10-02 06:37:30

在函数的末尾vid.release()关闭视频(docs),因此要再次播放视频,必须使用vid = cv2.VideoCapture(videa)重新打开它

为了更容易播放不同的视频,您可以稍微重新构造代码:

def correr_video(vid_file): 
    vid = cv2.VideoCapture(vid_file)
    [rest of code in function]


correr_video(videa)

相关问题 更多 >

    热门问题