/Mac/Demo/quicktime/MovieInWindow.py
http://unladen-swallow.googlecode.com/ · Python · 70 lines · 38 code · 15 blank · 17 comment · 6 complexity · 59545ab383ca19b7553be063accddf60 MD5 · raw file
- """MovieInWindow converted to python
- Jack Jansen, CWI, December 1995
- """
- from Carbon import Qt
- from Carbon import QuickTime
- from Carbon import Qd
- from Carbon import QuickDraw
- from Carbon import Evt
- from Carbon import Events
- from Carbon import Win
- from Carbon import Windows
- from Carbon import File
- import EasyDialogs
- import sys
- import os
- def main():
- # skip the toolbox initializations, already done
- # XXXX Should use gestalt here to check for quicktime version
- Qt.EnterMovies()
- # Get the movie file
- if len(sys.argv) > 1:
- filename = sys.argv[1]
- else:
- filename = EasyDialogs.AskFileForOpen() # Was: QuickTime.MovieFileType
- if not filename:
- sys.exit(0)
- # Open the window
- bounds = (175, 75, 175+160, 75+120)
- theWindow = Win.NewCWindow(bounds, os.path.split(filename)[1], 1, 0, -1, 0, 0)
- Qd.SetPort(theWindow)
- # XXXX Needed? SetGWorld((CGrafPtr)theWindow, nil)
- playMovieInWindow(theWindow, filename, theWindow.GetWindowPort().GetPortBounds())
- def playMovieInWindow(theWindow, theFile, movieBox):
- """Play a movie in a window"""
- # XXXX Needed? SetGWorld((CGrafPtr)theWindow, nil);
- # Get the movie
- theMovie = loadMovie(theFile)
- # Set where we want it
- theMovie.SetMovieBox(movieBox)
- # Start at the beginning
- theMovie.GoToBeginningOfMovie()
- # Give a little time to preroll
- theMovie.MoviesTask(0)
- # Start playing
- theMovie.StartMovie()
- while not theMovie.IsMovieDone() and not Evt.Button():
- theMovie.MoviesTask(0)
- def loadMovie(theFile):
- """Load a movie given an fsspec. Return the movie object"""
- movieResRef = Qt.OpenMovieFile(theFile, 1)
- movie, d1, d2 = Qt.NewMovieFromFile(movieResRef, 0, QuickTime.newMovieActive)
- return movie
- if __name__ == '__main__':
- main()