执行两次播放视频的功能时出错

时间:2019-11-11 20:56:04

标签: python python-3.x opencv visual-studio-code python-3.8

当我尝试运行两次相同的功能(该功能从文件夹播放随机视频)时,会发生问题。当我尝试制作一个“ 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()

1 个答案:

答案 0 :(得分:0)

函数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)