Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
    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()
Exemplo n.º 4
0
    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()
Exemplo n.º 5
0
    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()
Exemplo n.º 6
0
    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()
Exemplo n.º 7
0
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)
Exemplo n.º 8
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
Exemplo n.º 9
0
    )
    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),
            anchor='bottom',
            color=(1.0, 1.0, 1.0, 1.0))

# Create the instance of TextureStimulus

stimulus = TextureStimulus(texture=texture,
                           position=(screen.size[0] / 2, screen.size[1] / 2),
                           anchor='center',
                           size=(width * scale, height * scale),
Exemplo n.º 10
0
                     )
    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),
             anchor = 'bottom',
             color = (1.0,1.0,1.0,1.0))

# Create the instance of TextureStimulus

stimulus = TextureStimulus(texture  = texture,
                           position = (screen.size[0]/2,screen.size[1]/2),
                           anchor = 'center',
                           size = (width*scale,height*scale),
Exemplo n.º 11
0
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()