def createGUI( file ): # load movie movie = pygame.movie.Movie( file ) width, height = movie.get_size() # initialize display window screen = pygame.display.set_mode( ( width, height + 100 ) ) pygame.display.set_caption( "Movie Player" ) pygame.mouse.set_visible( 1 ) # play button playImageFile = os.path.join( "data", "play.png" ) playImage = pygame.image.load( playImageFile ).convert() playImageSize = playImage.get_rect() playImageSize.center = width / 2, height + 50 # copy play button to screen screen.blit( playImage, playImageSize ) pygame.display.flip() # set output surface for movie's video movie.set_display( screen ) return movie, playImageSize
def createGUI(file): # load movie movie = pygame.movie.Movie(file) width, height = movie.get_size() # initialize display window screen = pygame.display.set_mode((width, height + 100)) pygame.display.set_caption("Movie Player") pygame.mouse.set_visible(1) # play button playImageFile = os.path.join("data", "play.png") playImage = pygame.image.load(playImageFile).convert() playImageSize = playImage.get_rect() playImageSize.center = width / 2, height + 50 # copy play button to screen screen.blit(playImage, playImageSize) pygame.display.flip() # set output surface for movie's video movie.set_display(screen) return movie, playImageSize
def dont_test_render_frame__on_screen(self): pygame.display.init() # Needs to be init or will segfault movie_file = test_utils.trunk_relative_path('examples/data/blue.mpg') movie = pygame.movie.Movie(movie_file) movie_dimensions = movie.get_size() self.assertEqual(movie_dimensions, (320, 240)) screen = pygame.display.set_mode(movie_dimensions) movie.set_display(screen) movie.render_frame(5) #self.assertEqual(screen.get_at((10,10)), (16, 16, 255, 255)) #self.assert_(screen.get_at((10,10)) in [(16, 16, 255, 255), (18, 13, 238, 255)]) self.assert_(within_seq( screen.get_at((10,10)), (16, 16, 255, 255), 20 )) pygame.display.quit()
def dont_test_render_frame__on_screen(self): pygame.display.init() # Needs to be init or will segfault movie_file = test_utils.trunk_relative_path('examples/data/blue.mpg') movie = pygame.movie.Movie(movie_file) movie_dimensions = movie.get_size() self.assertEqual(movie_dimensions, (320, 240)) screen = pygame.display.set_mode(movie_dimensions) movie.set_display(screen) movie.render_frame(5) #self.assertEqual(screen.get_at((10,10)), (16, 16, 255, 255)) #self.assert_(screen.get_at((10,10)) in [(16, 16, 255, 255), (18, 13, 238, 255)]) self.assert_( within_seq(screen.get_at((10, 10)), (16, 16, 255, 255), 20)) pygame.display.quit()
def test_render_frame__off_screen(self): # __doc__ (as of 2008-06-25) for pygame.movie.Movie: # pygame.movie.Movie(filename): return Movie # pygame.movie.Movie(object): return Movie # load an mpeg movie file # pygame accepts only MPEG program stream containers, # with MPEG1 video and MPEG2 audio. I found # that the command # mencoder -of mpeg -ovc lavc -oac lavc -lavcopts \ # acodec=mp2:vcodec=mpeg1video:vbitrate=1000 -o new.mpg old.avi # os.environ.update({"SDL_VIDEODRIVER":'windib'}) movie_file = test_utils.trunk_relative_path('examples/data/blue.mpg') # Need to init display before using it. self.assertRaises(Exception, (pygame.movie.Movie, movie_file)) pygame.display.init() # Needs to be init movie = pygame.movie.Movie(movie_file) movie_dimensions = movie.get_size() screen = pygame.display.set_mode(movie_dimensions) self.assertEqual(movie_dimensions, (320, 240)) off_screen = pygame.Surface(movie_dimensions).convert() movie.set_display(off_screen) frame_number = movie.render_frame(5) #self.assertEqual(off_screen.get_at((10,10)), (16, 16, 255, 255)) #self.assert_(off_screen.get_at((10,10)) in [(16, 16, 255, 255), (18, 13, 238, 255)]) self.assert_(within_seq( off_screen.get_at((10,10)), (16, 16, 255, 255), 20 )) pygame.display.quit()
def test_render_frame__off_screen(self): # __doc__ (as of 2008-06-25) for pygame.movie.Movie: # pygame.movie.Movie(filename): return Movie # pygame.movie.Movie(object): return Movie # load an mpeg movie file # pygame accepts only MPEG program stream containers, # with MPEG1 video and MPEG2 audio. I found # that the command # mencoder -of mpeg -ovc lavc -oac lavc -lavcopts \ # acodec=mp2:vcodec=mpeg1video:vbitrate=1000 -o new.mpg old.avi # os.environ.update({"SDL_VIDEODRIVER":'windib'}) movie_file = test_utils.trunk_relative_path('examples/data/blue.mpg') # Need to init display before using it. self.assertRaises(Exception, (pygame.movie.Movie, movie_file)) pygame.display.init() # Needs to be init movie = pygame.movie.Movie(movie_file) movie_dimensions = movie.get_size() screen = pygame.display.set_mode(movie_dimensions) self.assertEqual(movie_dimensions, (320, 240)) off_screen = pygame.Surface(movie_dimensions).convert() movie.set_display(off_screen) frame_number = movie.render_frame(5) #self.assertEqual(off_screen.get_at((10,10)), (16, 16, 255, 255)) #self.assert_(off_screen.get_at((10,10)) in [(16, 16, 255, 255), (18, 13, 238, 255)]) self.assert_( within_seq(off_screen.get_at((10, 10)), (16, 16, 255, 255), 20)) pygame.display.quit()
def main(filepath): pygame.init() pygame.mixer.quit() pygame.display.init() movie = pygame.movie.Movie(filepath) w, h = movie.get_size() #print w, h #w = int(w * 1.3 + 0.5) #h = int(h * 1.3 + 0.5) wsize = (w+10, h+10) msize = (w, h) screen = pygame.display.set_mode(wsize) movie.set_display(screen, Rect((5, 5), msize)) pygame.event.set_allowed((QUIT, KEYDOWN)) pygame.time.set_timer(USEREVENT, 1000) movie.play() while movie.get_busy(): pygame.event.wait() if movie.get_busy(): movie.stop() pygame.time.set_timer(USEREVENT, 0)
def load_movie(screen, movie_file, *options): vol = 0.5 # volume starting half way. min is 0.0 max is 1.0 paused = 0 skipped = 0 image = pygame.image.load(gl.MOVIE_FILE).convert() paint_screen(screen, gl.BLACK) pygame.mixer.quit() # so sound in the movie works print movie_file# set_caption("imgv - %s" % movie_file)# movie = pygame.movie.Movie(movie_file) screen_center = ((screen.get_width() / 2) - (movie.get_size()[0] / 2), ((screen.get_height() / 2)) -\ (movie.get_size()[1] / 2)) # where to center the movie if len(options) > 0: if options[0] == "fitwindow": movie.set_display(screen, (0, 0, screen.get_width(), screen.get_height())) else: movie.set_display(screen, screen_center) if len(movie_file) > 70: movie_name = movie_file[:70] + '...' else: movie_name = movie_file movie.play() movie.set_volume(vol) normal_cursor() mute_rect = show_message(screen, "Mute", (20, 0), 12) lower_rect = show_message(screen, "Lower", (80, 0), 12) louder_rect = show_message(screen, "Louder", (140, 0), 12) pause_rect = show_message(screen, "Pause", (200, 0), 12) stop_rect = show_message(screen, "Stop", (260, 0), 12) skip_rect = show_message(screen, "Skip-Half", (320, 0), 12) fw_rect = show_message(screen, "Fit-Window", (400, 0), 12) show_message(screen, "(%d:%02.f)" % (movie.get_length() / 60, movie.get_length() % 60), (480, 0), 12) if gl.TOGGLE_STATUS_BAR: show_message(screen, "%s/%s, %s" % (gl.files.index(movie_file) + 1, len(gl.files),\ os.path.basename(movie_name)), "bottom", 12) flip()# while movie: if not movie.get_busy() and not paused and gl.SLIDE_SHOW_RUNNING: break for event in pygame.event.get(): cursor = pygame.mouse.get_pos() if event.type == KEYDOWN and event.key == K_q or event.type == QUIT: wait_cursor() movie.stop() movie = None clean_screen() raise SystemExit if event.type == KEYDOWN and event.key not in (K_LALT, K_RALT, K_LCTRL, K_RCTRL, K_p, K_TAB): movie.stop() movie = None return image if left_click(event): if mute_rect.collidepoint(cursor): movie.set_volume(0) break if lower_rect.collidepoint(cursor): if vol >= 0.0: vol = vol - 0.2 movie.set_volume(vol) break if louder_rect.collidepoint(cursor): if vol <= 1.0: vol = vol + 0.2 movie.set_volume(vol) break if pause_rect.collidepoint(cursor): if paused: paused = 0 else: paused = 1 movie.pause() break if stop_rect.collidepoint(cursor): movie.stop() movie = None return image if skip_rect.collidepoint(cursor): if not skipped: movie.skip(movie.get_length() / 2) break if fw_rect.collidepoint(cursor): movie.stop() movie = None image = load_movie(screen, movie_file, "fitwindow") break movie = None return image
font_size=20, color=(1.0, 1.0, 1.0)) viewport = Viewport(screen=screen, stimuli=[text, text2]) p = Presentation( go_duration=('forever', ), viewports=[viewport], handle_event_callbacks=[(pygame.locals.QUIT, quit), (pygame.locals.KEYDOWN, keydown)], ) p.go() sys.exit(1) movie = pygame.movie.Movie(filename) width, height = movie.get_size() scale_x = screen.size[0] / float(width) scale_y = screen.size[1] / float(height) scale = min(scale_x, scale_y) # maintain aspect ratio # create pygame surface (buffer to draw uncompressed movie data into) pygame_surface = pygame.surface.Surface((width, height)) # tell the movie to render onto the surface movie.set_display(pygame_surface) # create a texture using this surface as the source of texel data texture = Texture(pygame_surface) text = Text(text="Vision Egg MPEG demo - Press Esc to quit", position=(screen.size[0] / 2, 2),
font_size=20, color = (1.0,1.0,1.0)) viewport = Viewport(screen=screen, stimuli=[text,text2]) p = Presentation(go_duration=('forever',), viewports=[viewport], handle_event_callbacks=[(pygame.locals.QUIT, quit), (pygame.locals.KEYDOWN, keydown)], ) p.go() sys.exit(1) movie = pygame.movie.Movie(filename) width, height = movie.get_size() scale_x = screen.size[0]/float(width) scale_y = screen.size[1]/float(height) scale = min(scale_x,scale_y) # maintain aspect ratio # create pygame surface (buffer to draw uncompressed movie data into) pygame_surface = pygame.surface.Surface((width,height)) # tell the movie to render onto the surface movie.set_display( pygame_surface ) # create a texture using this surface as the source of texel data texture = Texture(pygame_surface) text = Text( text = "Vision Egg MPEG demo - Press Esc to quit", position = (screen.size[0]/2,2),
import pygame from pygame import display, movie FPS = 60 pygame.init() clock = pygame.time.Clock() movie = pygame.movie.Movie("resources/animation/vid.mp4") screen = pygame.display.set_mode(movie.get_size()) movie.set_display(movie_screen) movie.play() playing = True while playing: for event in pygame.event.get(): if event.type == pygame.QUIT: movie.stop() playing = False screen.blit(movie_screen, (0, 0)) pygame.display.update() clock.tick(FPS) pygame.quit() quit()