You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.8 KiB
71 lines
1.8 KiB
"""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()
|