illume avatar illume committed 63d71e6

Improving movieplayer examples.

Comments (0)

Files changed (2)

examples/__movie_test.py

 
 print ("Please give an (absolute)filename of a movie file you'd like to play: ")
 #filename = raw_input()
-filename="/home/tyler/War3.avi"
+filename="/tmp/testit.avi"
 #initialization. It could also have a surface as a second argument, and every 
 # frame will be blitted to that surface. It is the programmer's responsibility
 # to be on time for rendering that surface.
     #this is to test that the movie module tests filenames to make sure they exist
     m=movie.Movie("gsdsjgsdj")
 except Exception:
-    e = pygame.compat.get_error()
+    e = pygame.compat.geterror()
     print (e)
     del m
 
 try:
     m.surface = surf
 except Exception:
-    e = pygame.compat.get_error()
+    e = pygame.compat.geterror()
 
     print (e)
     del e

examples/movieplayer.py

 
 import sys
 import os
+import time
 
 if sys.platform == 'win32' and sys.getwindowsversion()[0] >= 5: # condi. and
     # On NT like Windows versions smpeg video needs windb.
     os.environ['SDL_VIDEODRIVER'] = 'windib'
     
 import pygame
+import pygame._movie
 from pygame.locals import *
 
 try:
     pygame.mixer.quit()
     pygame.display.init()
 
-    f = BytesIO(open(filepath, 'rb').read())
-    movie = pygame.movie.Movie(f)
-    w, h = movie.get_size()
-    w = int(w * 1.3 + 0.5)
-    h = int(h * 1.3 + 0.5)
-    wsize = (w+10, h+10)
+    #f = BytesIO(open(filepath, 'rb').read())
+    #movie = pygame.movie.Movie(f)
+    #w, h = movie.get_size()
+    info = pygame._movie.MovieInfo(filepath)
+    w, h = info.width, info.height
     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():
-        evt = pygame.event.wait()
-        if evt.type == QUIT:
-            break
-        if evt.type == KEYDOWN and evt.unicode == QUIT_CHAR:
-            break
-    if movie.get_busy():
+
+    print "new screen..."
+    screen = pygame.display.set_mode(msize)
+
+
+    pygame.display.set_caption(os.path.split(info.filename)[-1])
+
+
+    print "before movie = pygame._movie.Movie(filepath, screen)"
+    #surf = screen.copy().convert()
+    #movie = pygame._movie.Movie(filepath, screen)
+    movie = pygame._movie.Movie(filepath)
+    #movie.surface = surf
+    print "after movie = pygame._movie.Movie(filepath, screen)"
+    #movie.set_display(screen, Rect((5, 5), msize))
+
+    print dir(movie)
+    print movie.surface
+    #movie.xleft = 300
+    print "before movie.play()"
+    movie.play(0)
+    print "after movie.play()"
+
+    while movie.playing:
+
+        events = pygame.event.get()
+        for e in events:
+            print e
+            if e.type == QUIT or e.type == KEYDOWN and e.key == K_ESCAPE:
+                movie.stop()
+
+
+        if 1:
+            if(not screen.get_locked()):
+                try:
+                    #pygame.display.update()
+                    #pygame.display.flip()
+                    pass
+                except pygame.error:
+                    break
+        else:
+            if(not surf.get_locked() and not screen.get_locked()):
+                try:
+                    screen.blit(surf, (0,0))
+                except pygame.error:
+                    pass
+            
+        time.sleep(0.1) # release the GIL.
+
+
+    if movie.playing:
         movie.stop()
-    pygame.time.set_timer(USEREVENT, 0)
 
 if __name__ == '__main__':
     if len(sys.argv) != 2:
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.