preload video
This commit is contained in:
parent
091a2279cb
commit
53a29cf632
@ -88,28 +88,34 @@ class VideoPlayer:
|
|||||||
|
|
||||||
self.total_frames = int(self.cap.get(cv2.CAP_PROP_FRAME_COUNT))
|
self.total_frames = int(self.cap.get(cv2.CAP_PROP_FRAME_COUNT))
|
||||||
self.fps = int(self.cap.get(cv2.CAP_PROP_FPS))
|
self.fps = int(self.cap.get(cv2.CAP_PROP_FPS))
|
||||||
print(self.total_frames, self.fps)
|
|
||||||
self.time = int(self.total_frames * ((int(1000/self.fps)+1)))
|
self.time = int(self.total_frames * ((int(1000/self.fps)+1)))
|
||||||
self.time = 30 * 1000
|
self.delay = int(1000/self.fps)
|
||||||
print(int(1000/self.fps))
|
self.i = -1
|
||||||
self.is_playing = True
|
self.frames = []
|
||||||
self.i = 0
|
self.preload()
|
||||||
self.update()
|
self.update()
|
||||||
|
|
||||||
def update(self):
|
def preload(self):
|
||||||
if self.is_playing:
|
isPlaying = True
|
||||||
self.i = self.i + 1
|
while isPlaying:
|
||||||
#print(self.i)
|
|
||||||
ret, frame = self.cap.read()
|
ret, frame = self.cap.read()
|
||||||
if ret:
|
if ret:
|
||||||
image = Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
|
image = Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
|
||||||
image = self.parent.resize_full_screen(image)
|
image = self.parent.resize_full_screen(image)
|
||||||
photo = ImageTk.PhotoImage(image=image)
|
photo = ImageTk.PhotoImage(image=image)
|
||||||
self.parent.show_image(photo)
|
self.frames.append(photo)
|
||||||
else:
|
else:
|
||||||
self.is_playing = False
|
|
||||||
self.cap.release()
|
self.cap.release()
|
||||||
self.parent.root.after(int(1000/self.fps), self.update)
|
isPlaying = False
|
||||||
|
|
||||||
|
|
||||||
|
def update(self):
|
||||||
|
self.i += 1
|
||||||
|
if self.i < len(self.frames):
|
||||||
|
self.parent.show_image(self.frames[self.i])
|
||||||
|
self.parent.root.after(int(self.delay), self.update)
|
||||||
|
else:
|
||||||
|
self.frames = []
|
||||||
|
|
||||||
class GIFPlayer():
|
class GIFPlayer():
|
||||||
def __init__(self, parent, file):
|
def __init__(self, parent, file):
|
||||||
|
Loading…
Reference in New Issue
Block a user