pygamevideo
module helps developer to embed videos into their Pygame display. Audio playback doesn't use pygame.mixer
.
pip install pygamevideo
or just copy-paste pygamevideo.py
to your working directory
import pygame
from pygamevideo import Video
window = pygame.display.set_mode()
video = Video("video.mp4")
# start video
video.play()
# main loop
while True:
...
# draw video to display surface
# this function must be called every tick
video.draw_to(window, (0, 0))
# set window title to current duration of video as hour:minute:second
t = video.current_time.format("%h:%m:%s")
pygame.display.set_caption(t)
Pygame video player class
filepath
: Filepath of the video source
load(filepath)
: Load another video source
release()
: Release resources
play(loop=True)
: Starts video playback
loop
: Is video looped or not
restart()
: Restarts already playing video
stop()
: Stops video
pause()
: Pauses video
resume()
: Resumes video
is_playing
: Whether the video is playing or not (bool)
is_ended
: Whether the video has ended or not (bool)
is_paused
: Whether the video is paused or not (bool)
is_ready
: Whether the resources and video is ready to play (bool)
mute()
: Mutes audio
unmute()
: Unmutes audio
has_audio()
: NOT IMPLEMENTED
set_volume(volume)
: Sets audio volume
volume
: Floating number between 0.0 and 1.0
is_muted
: Whether the audio is muted or not (bool)
volume
: Audio volume (float)
duration
: Length of the video as Time object
current_time
: Current time of the video as Time object
remaining_time
: Remaining time till the end of the video as Time object
total_frames
: Length of the video as frames (int)
current_frame
: Current frame of the video (int)
remaining_frames
: Remaining frames till the end of the video (int)
seek_time(t)
: Jump into a specific time of the video
t
: Time objectt
: Representation of time in string, eg: "00:01:05:200" meaning 1 minute, 5 seconds and 200 milliseconds (str)t
: Milliseconds (int)
seek_frame(frame)
: Jump into a specific frame of the video
frame
: Frame number (int)
get_size()
: Returns video size (tuple)
get_width()
: Returns video width (int)
get_height()
: Returns video height (int)
set_size(size)
: Resizes video
size
: New size (tuple)
set_width(width)
: Resizes video
width
: New width (int)
set_height(height)
: Resizes video
height
: New height (int)
keep_aspect_ratio
: Keeps original aspect ratio while resizing the video (bool)
draw_to(surface, pos)
: Draws the video onto the surface. This functions must be called every tick.
surface
: Destination surface (pygame.Surface)pos
: Blitting position (tuple)
get_frame()
: Returns the current video frame as pygame.Surface. This function is used by draw_to
function, so use only one of both each tick
Data class used to represent duration and such things by Video
class