我们都知道,原神启动实际上是加载了一段原神视频,那么怎么一次性加载五个原神呢。
我们先了解一下他的原理 (左边加载原神视频 ,右边是载入视频的过程)
首先我们可以新建一个文件,记得放在video的同级目录,当然,如果放在vide里面也可以,
但是前提是不能放在中文目录下。
为了避免出错,尽量在上一个成功运行的代码的周围再新建一个,否则可能需要辛苦剪切下代码了
接下来导入opencv
import cv2
接着同时载入多个视频
yuanshen1=cv2.VideoCapture('video/a.mp4')
yuanshen2=cv2.VideoCapture('video/b.mp4')
yuanshen3=cv2.VideoCapture('video/c.mp4')
#yuanshen1变量写的不完全一样没关系,代码是不会报错的
#但是要将错就错,比如不小心写成 yuans1,只要记得它代表原神1视频就ok了
#后面的变量和你写错的变量保持一致,程序是不会出问题的。
接着进入主循环,但是考虑到程序可能会运行出错,大家是不是经常看到这样的错误
cv2.error: OpenCV(4.5.2) C:\Users\runneradmin\AppData\Local\Temp\pip-req。。。。
所以我们要加入异常处理。
语法是:
try:
捕获可能出现的异常
except:
抛出当前异常
这样写的好处是,正常运行时如果代码出现异常,不会报错突然停下来,代码还是会继续运行
我们来整合一下代码,采用了异常捕获以后代码可以正常编译,并且提示你代码异常的地方。
while True:
try:
原神正常运行时代码
except :
原神异常运行时代码
接下来把正常运行代码解读一下
以上是正常运行的代码,把它写在 原神正常运行时代码那里
我们整合下代码,就像这样:
while True:
try:
rct1, img1 =yuanshen1.read()
rct2, img2 = yuanshen2.read()
rct3, img3 = yuanshen3.read()
img1 = cv2.resize(img1,(600,400))
img2 = cv2.resize(img2, (600, 400))
img3 = cv2.resize(img3, (600, 400))
cv2.imshow('yuanshen1',img1)
cv2.imshow('yuanshen2', img2)
cv2.imshow('yuanshen3', img3)
cv2.waitKey(1)
except:
原神异常运行时启动部分
以上是正常启动部分,那么异常启动部分如何写呢?
while True:
try:
正常运行代码
except:
print('加载异常,正在重新启动原神')
yuanshen1 = cv2.VideoCapture('video/a.mp4')
yuanshen2 = cv2.VideoCapture('video/b.mp4')
yuanshen3 = cv2.VideoCapture('video/d.mp4')
通过以上整合,你就可以正常启动你的原神了
一般第一次加载完成后,就会出现加载异常,这个时候,就会重新加载
如果第一次没加载成功,它就会一直加载,但是程序不会停止
就这样,幸运的话,加载正常启动代码,运气不好的话加载异常启动代码,反复循环中
好了,以上是原神多开启动的小程序,最后把整个代码结构分享一下
import cv2
yuanshen1=cv2.VideoCapture('video/a.mp4')
"""其余两段是加载原神2和原神3的视频"""
while True:
try:
rct1, img1 =yuanshen1.read()
"""其余两段是加载原神2和原神3的图片"""
img1 = cv2.resize(img1,(600,400))
"""其余两段是缩小原神2和原神3的图片"""
cv2.imshow('yuanshen1',img1)
"""其余两段是显示原神2和原神3的窗口"""
cv2.waitKey(1)
except :
print('加载异常,正在重新启动原神')
"""下面的代码和2、3、4行一样的,都是加载原神视频"""
视频素材多的朋友可以采用同样的结构,实现4个多开,甚至5-6个多开
但是注意前面的代码是怎么跑起来的,后面的代码跟着写就行,
案例里面实现的是3开,只要保持结构不变,你也能实现多开