执行两次播放视频的功能时出错
Error executing twice a function that plays a video
当我尝试 运行 两次相同的功能(这是一个播放文件夹中的随机视频的功能)时,我遇到了一个问题。当我尝试制作一个 "for loop" 来重播该函数一定次数时,我发现了这个问题。它没有出现特定错误,它只是通过 "if statement" 解决了它,我接下来将向您展示
if (vid.isOpened()== False):
print("El archivo de mierda no se pudo abrir")
所以在我的屏幕上只弹出消息"El archivo de mierda no se pudo abrir"。如果我尝试注释掉 "if statement",第二次该功能会被忽略,第二个视频不会播放。我该如何避免或解决这个问题?整个代码就是下一个:
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()
在函数结束时 vid.release()
关闭视频 (docs),因此要再次播放视频,您必须使用 vid = cv2.VideoCapture(videa)
[=14= 重新打开它]
为了更轻松地播放不同的视频,您可以稍微重构一下代码:
def correr_video(vid_file):
vid = cv2.VideoCapture(vid_file)
[rest of code in function]
correr_video(videa)
当我尝试 运行 两次相同的功能(这是一个播放文件夹中的随机视频的功能)时,我遇到了一个问题。当我尝试制作一个 "for loop" 来重播该函数一定次数时,我发现了这个问题。它没有出现特定错误,它只是通过 "if statement" 解决了它,我接下来将向您展示
if (vid.isOpened()== False):
print("El archivo de mierda no se pudo abrir")
所以在我的屏幕上只弹出消息"El archivo de mierda no se pudo abrir"。如果我尝试注释掉 "if statement",第二次该功能会被忽略,第二个视频不会播放。我该如何避免或解决这个问题?整个代码就是下一个:
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()
在函数结束时 vid.release()
关闭视频 (docs),因此要再次播放视频,您必须使用 vid = cv2.VideoCapture(videa)
[=14= 重新打开它]
为了更轻松地播放不同的视频,您可以稍微重构一下代码:
def correr_video(vid_file):
vid = cv2.VideoCapture(vid_file)
[rest of code in function]
correr_video(videa)