| Inherits from | |
| Conforms to | |
| Framework | /System/Library/Frameworks/QTKit.framework |
| Availability | Available in Mac OS X v10.4 and later. |
| Declared in | QTMovie.h |
| Related sample code |
The QTMovie class represents both a QuickTime movie and a movie controller. A movie is a collection of playable and editable media content. It describes the sources and types of the media in that collection and their spatial and temporal organization. These collections may be used for presentation (such as playback on the screen) or for the organization of media for processing (such as composition and transcoding to a different compression type). The collection may be as simple as a single file that plays at its natural size for its intrinsic duration, or it may be very complex (with multiple sources of content, rich composition rules, interactivity, and a variety of contingencies).
Just as a QuickTime movie contains a set of tracks, each of which defines the type, the segments, and the ordering of the media data it presents, a QTMovie object is associated with instances of the QTTrack class. In turn, a QTTrack object is associated with a single QTMedia object.
A QTMovie object can be initialized from a file, from a resource specified by a URL, from a block of memory, from a pasteboard, or from an existing QuickTime movie.
Once a QTMovie object has been initialized, it will typically be used in combination with a QTMovieView for playback.
An exception, QTMovieUneditableException, is raised whenever the client attempts to directly or indirectly edit a QTMovie object that is not currently set as editable (for instance, by calling appendSelectionFromMovie: on an uneditable movie).
+ canInitWithFile:
+ canInitWithURL:
+ canInitWithPasteboard:
+ canInitWithDataReference:
– initWithPasteboard:error:
+ movieFileTypes:
+ movieTypesWithOptions:
+ movieUnfilteredFileTypes
+ movieUnfilteredPasteboardTypes
+ movie
+ movieNamed:error:
+ movieWithData:error:
+ movieWithURL:error:
+ movieWithPasteboard:error:
+ movieWithFile:error:
+ movieWithDataReference:error:
+ movieWithQuickTimeMovie:disposeWhenDone:error:
+ movieWithAttributes:error:
– autoplay
– play
– stop
– gotoBeginning
– gotoEnd
– gotoNextSelectionPoint
– gotoPreviousSelectionPoint
– gotoPosterFrame
– setCurrentTime:
– stepForward
– stepBackward
+ enterQTKitOnThread
+ enterQTKitOnThreadDisablingThreadSafetyProtection
+ exitQTKitOnThread
– attachToCurrentThread
– detachFromCurrentThread
– initWithFile:error:
– initWithURL:error:
– initWithData:error:
– initWithDataReference:error:
– initWithMovie:timeRange:error:
– initWithQuickTimeMovie:disposeWhenDone:error:
– initWithAttributes:error:
– hasChapters
– chapterCount
– chapters
– addChapters
– removeChapters
– startTimeOfChapter:
– chapterIndexForTime:
– duration
– currentTime
– rate
– volume
– muted
– movieWithTimeRange:error:
– attributeForKey:
– movieAttributes
– initToWritableDataReference:error:
– initToWritableFile:error:
– initToWritableData:error:
– movieFormatRepresentation
– writeToFile:withAttributes:
– writeToFile:withAttributes:error:
– replaceSelectionWithSelectionFromMovie:
– appendSelectionFromMovie:
– insertSegmentOfMovie:timeRange:atTime:
– insertSegmentOfMovie:fromRange:scaledToRange:
– insertEmptySegmentAt:
– deleteSegment:
– scaleSegment:newDuration:
– addImage:forDuration:withAttributes:
– delegate
– setDelegate:
– externalMovie: delegate method
– movieShouldTask: delegate method
– movie:shouldContinueOperation:withPhase:atPercent:withAttributes: delegate method
– movie:linkToURL: delegate method
Returns YES if the specified data reference can be used to initialize a QTMovie object.
+ (BOOL)canInitWithDataReference:(QTDataReference*)dataReference
QTMovie.h
Returns YES if the contents of the specified file can be used to initialize a QTMovie object.
+ (BOOL)canInitWithFile:(NSString *)fileName
QTMovie.h
Returns YES if the contents of the specified pasteboard can be used to initialize a QTMovie object.
+ (BOOL)canInitWithPasteboard:(NSPasteboard *)pasteboard
QTMovie.h
Returns YES if the contents of the specified URL can be used to initialize a QTMovie object.
+ (BOOL)canInitWithURL:(NSURL *)url
QTMovie.hPerforms any QuickTime-specific initialization for the current (non-main) thread; must be paired with a call to exitQTKitOnThread.
+ (void)enterQTKitOnThread
QTMovie.hPerforms any QuickTime-specific initialization for the current (non-main) thread, allowing non-threadsafe components; must be paired with a call to exitQTKitOnThread.
+ (void)enterQTKitOnThreadDisablingThreadSafetyProtection
QTMovie.hPerforms any QuickTime-specific shut-down for the current (non-main) thread; must be paired with a call to enterQTKitOnThread or enterQTKitOnThreadDisablingThreadSafetyProtection.
+ (void)exitQTKitOnThread
QTMovie.h
Creates an empty QTMovie object.
+ (id)movie
QTMovie.h
Returns an array of file types that can be opened as QuickTime movies.
+ (NSArray *)movieFileTypes:(QTMovieTypeOptions)types
Passing zero as the options parameter returns an array of all the common file types that QuickTime can open in place on the current system. This array includes the file type .mov and .mqv, and any files types that can be opened using a movie importer that does not need to write data into a new file while performing the import. This array excludes any file types for still images and any file types that require an aggressive movie importer (for instance, the movie importer for text files). The following values can be used to include some or all of the file types that are normally excluded:
enum { |
QTIncludeStillImageTypes = 1 << 0, |
QTIncludeTranslatableTypes = 1 << 1, |
QTIncludeAggressiveTypes = 1 << 2, |
QTIncludeCommonTypes = 0, |
QTIncludeAllTypes = 0xffff |
} QTMovieFileTypeOptions; |
Constants |
Description |
|---|---|
Available in Mac OS X v10.3 and later. |
This value adds to the array all file types for still images that can be opened using a graphics importer. |
Available in Mac OS X v10.3 and later. Declared in |
This value adds to the array all file types for files that can be opened using a movie importer but for which a new file must be created. |
Available in Mac OS X v10.3 and later. Declared in |
This value adds to the array all file types for files that can be opened using a movie importer but that are not commonly used in connection with movies (for instance, text or HTML files). |
Available in Mac OS X v10.3 and later. Declared in |
This value adds to the array all common file types that QuickTime can open in place on the current system. |
Available in Mac OS X v10.3 and later. Declared in |
This value adds to the array all file types that QuickTime can open on the current system, using any available movie or graphics importer. |
QTMovie.h
Creates a QTMovie object initialized with the data from the QuickTime movie of the specified name in the application’s bundle.
+ (id)movieNamed:(NSString *)name error:(NSError **)errorPtr
If a QTMovie object cannot be created, an NSError object is returned in the location pointed to by errorPtr. Pass NIL if you do not want an NSError object returned.
QTMovie.hReturns an array of UTIs that QuickTime can open.
+ (NSArray *)movieTypesWithOptions:(QTMovieFileTypeOptions)types
This method gets an array of NSString objects that specify the uniform type identifiers (UTIs) for types of files that QuickTime can open. The types parameter is interpreted just like the types parameter to + (NSArray *)movieFileTypes:(QTMovieFileTypeOptions)types.
QTMovie.h
Returns an array of file types that can be used to initialize a QTMovie object.
+ (NSArray *)movieUnfilteredFileTypes
QTMovie.h
Returns an array of pasteboard types that can be used to initialize a QTMovie object.
+ (NSArray *)movieUnfilteredPasteboardTypes
QTMovie.h
Creates a QTMovie object initialized with the attributes specified in attributes.
+ (id)movieWithAttributes:(NSDictionary *)attributes error:(NSError **)errorPtr
If a QTMovie object cannot be created, an NSError object is returned in the location pointed to by errorPtr. Pass NIL if you do not want an NSError object returned.
A new QTMovie object is created using the specified attributes. There are three types of attributes that can be included in this dictionary:
Attributes that specify the location of the movie data
Attributes that specify how the movie is to be instantiated
Attributes that specify playback characteristics of the movie or other properties of the QTMovie object
The following is a list of the keys that specify the location of the movie data; at least one of these must occur in the dictionary. If more than one occurs, the first one in the dictionary is used.
Attribute |
Description |
|---|---|
|
The file name string of a QTMovie object; the value for this key is of type |
|
The URL of a QTMovie object; the value for this key is of type |
|
The data reference of a QTMovie object; the value for this key is of type |
The pasteboard representation of a QTMovie object; the value for this key is of type |
|
The data representation of a QTMovie object; the value for this key is of type |
The following is a list of the keys that specify movie instantiation options; none of these keys is required. If a key is missing, the specified default value is used.
Attribute |
Description |
|---|---|
|
The file offset of a QTMovie. The value for this key is of type |
|
The resolved data reference of a QTMovie. The value for this key is of type |
|
The asked unresolved data reference setting of a QTMovie. The value for this key is of type |
|
The allowed synchronization opening setting of a QTMovie. The value for this key is of type |
The following is a list of the new keys that specify movie playback characteristics or other properties of the QTMovie object; most other existing movie attributes can be included as well.
Attribute |
Description |
|---|---|
|
The auto-alternate setting of a QTMovie object. The value for this key is of type |
|
The active setting; the value for this key is of type |
|
The delegate for a QTMovie object. The value for this key is of type |
QTMovie.h
Creates a QTMovie object initialized with the data specified by data.
+ (id)movieWithData:(NSData *)data error:(NSError **)errorPtr
If a QTMovie object cannot be created, an NSError object is returned in the location pointed to by errorPtr. Pass NIL if you do not want an NSError object returned.
QTMovie.h
Creates a QTMovie object intitalized with the data specified by the data reference dataReference.
+ (id)movieWithDataReference:(QTDataReference *)dataReference error:(NSError **)errorPtr
If a QTMovie object cannot be created, an NSError object is returned in the location pointed to by errorPtr. Pass NIL if you do not want an NSError object returned.
QTMovie.h
Creates a QTMovie object initialized with the data in the file specified by the name fileName.
+ (id)movieWithFile:(NSString *)fileName error:(NSError **)errorPtr
The fileName is assumed to be a full path name for a file.
If a QTMovie object cannot be created, an NSError object is returned in the location pointed to by errorPtr. Pass NIL if you do not want an NSError object returned.
QTMovie.h
Creates a QTMovie object initialized with the contents of the pasteboard specified by pasteboard.
+ (id)movieWithPasteboard:(NSPasteboard *)pasteboard error:(NSError **)errorPtr
These contents can be a QuickTime movie (of type Movie), a file path, or data of type QTMoviePasteboardType.
If a QTMovie object cannot be created, an NSError object is returned in the location pointed to by errorPtr. Pass NIL if you do not want an NSError object returned.
QTMovie.h
Creates a QTMovie object initialized with the data from an existing QuickTime movie movie.
+ (id)movieWithQuickTimeMovie:(Movie)movie disposeWhenDone:(BOOL)dispose error:(NSError **)errorPtr
The dispose parameter (a BOOL) indicates whether the QTKit should call DisposeMovie on the specified movie when the QTMovie object is deallocated. Passing YES effectively transfers “ownership” of the Movie to the QTKit. (Note that most applications will probably want to pass YES; passing NO means that the application wants to call DisposeMovie itself, perhaps so that it can operate on a Movie after it has been disassociated with a QTMovie object.)
If a QTMovie object cannot be created, an NSError object is returned in the location pointed to by errorPtr. Pass NIL if you do not want an NSError object returned.
Note that command-line tools that pass NO for the disposeWhenDone parameter must make sure to release the active autorelease pool before calling DisposeMovie on the specified QuickTime movie. Failure to do this may result in a crash. Tools that need to call DisposeMovie before releasing the main autorelease pool can create another autorelease pool associated with the movie.
QTMovie.h
Creates a QTMovie object initialized with the data in the URL specified by url.
+ (id)movieWithURL:(NSURL *)url error:(NSError **)errorPtr
If a QTMovie object cannot be created, an NSError object is returned in the location pointed to by errorPtr. Pass NIL if you do not want an NSError object returned.
QTMovie.hAdds chapters to the receiver using the information specified in the chapters array.
- (void)addChapters:(NSArray *)chapters withAttributes:(NSDictionary *)attributes error:(NSError **)errorPtr
Each array element is an NSDictionary containing key-value pairs. Currently two keys are defined for this dictionary, QTMovieChapterName and QTMovieChapterStartTime. The value for the QTMovieChapterName key is an NSString object that is the chapter name. The value for the QTMovieChapterStartTime key is an NSValue object that wraps a QTTime structure that indicates the start time of the chapter. The receiving QTMovie object must be editable or an exception will be raised.
The attributes dictionary specifies additional attributes for the chapters. Currently only one key is recognized for this dictionary, QTMovieChapterTargetTrackAttribute, which specifies the QTTrack in the receiver that is the target of the chapters; if none is specified, this method uses first video track in movie. If no video track is in the movie, this method uses the first audio track in the movie. If no audio track is in the movie, this method uses the first track in the movie. If an error occurs and errorPtr is non-NULL, then an NSError object is returned in that location.
Adds an image for the specified duration to the receiver, using attributes specified in the attributes dictionary.
- (void)addImage:(NSImage *)image forDuration:(QTTime)duration withAttributes:(NSDictionary *)attributes
Keys in the dictionary can be QTAddImageCodecType to select a codec type and QTAddImageCodecQuality to select a quality. Qualities are expected to be specified as NSNumbers, using the codec values like codecNormalQuality. (See ImageCompression.h for the complete list.) The attributes dictionary can also contain a value for the QTTrackTimeScaleAttribute key, which is used as the time scale of the new track, should one need to be created. The default time scale for a new track is 600.
QTMovie.hAppends to a QTMovie the current selection in movie.
- (void)appendSelectionFromMovie:(id)movie
If the movie is not editable, this method raises an exception.
QTMovie.hAttaches the receiver to the current thread; returns YES if successful, NO otherwise.
- (BOOL)attachToCurrentThread
QTMovie.hReturns the current value of the movie attribute attributeKey.
- (id)attributeForKey:(NSString *)attributeKey
A list of supported movie attributes and their acceptable values can be found in the “Constants” section.
QTMovie.hSets a movie to start playing when a sufficient amount of media data is available.
- (void)autoplay
The autoplay method configures a QTMovie object to begin playing as soon as enough data is available that the playback can continue uninterrupted to the end of the movie. This is most useful for movies being loaded from a remote URL or from an extremely slow local device. For movies stored on most local devices, this method has the same effect as the -[QTMovie play] method.
QTMovie.hIndicates whether a movie file can be updated with changes made to the movie object.
- (BOOL)canUpdateMovieFile
This method returns NO if any of the following conditions are true:
The movie is not associated with a file.
The movie is not savable (has 'nsav' user data set to 1).
The movie file is not writable.
The movie file does not contain a movie atom (indicating that the movie was imported from a non-movie format).
Otherwise, the method returns YES.
Using this method, an application can check first to see if the movie file can be updated; if not, it can prompt the user for a new name and location of a file in which to save the updated movie.
QTMovie.hReturns the number of chapters in the receiver, or 0 if there are no chapters.
- (NSInteger)chapterCount
QTMovie.hReturns the 0-based index of the chapter that contains the specified movie time.
- (NSInteger)chapterIndexForTime:(QTTime)time
QTMovie.hReturns an NSArray containing information about the chapters in the receiver.
- (NSArray *)chapters
Each array element is an NSDictionary containing key-value pairs. Currently two keys are defined for this dictionary, QTMovieChapterName and QTMovieChapterStartTime. The value for the QTMovieChapterName key is an NSString object that is the chapter name. The value for the QTMovieChapterStartTime key is an NSValue object that wraps a QTTime structure that indicates the start time of the chapter.
QTMovie.hReturns an NSImage for the frame at the current time in a QTMovie.
- (NSImage *)currentFrameImage
QTMovie.hReturns the current time of a QTMovie object as a structure of type QTTime.
- (QTTime)currentTime
QTMovie.hReturns the delegate of a QTMovie object.
- (id)delegate
QTMovie.hDeletes from a QTMovie the segment delimited by segment.
- (void)deleteSegment:(QTTimeRange)segment
If the movie is not editable, this method raises an exception.
QTMovie.hDetaches the receiver from the current thread; returns YES if successful, NO otherwise.
- (BOOL)detachFromCurrentThread
These methods allow applications to manage QTMovie objects on non-main threads. Before any QTKit operations can be performed on a secondary thread, either enterQTKitOnThread or enterQTKitOnThreadDisablingThreadSafetyProtection must be called, and exitQTKitOnThread must be called before exiting the thread. A QTMovie object can be migrated from one thread to another by first calling detachFromCurrentThread on the first thread and then attachToCurrentThread on the second thread.
QTMovie.hReturns the duration of a QTMovie object as a structure of type QTTime.
- (QTTime)duration
QTMovie.hReturns an NSImage for the frame at the time time in a QTMovie.
- (NSImage *)frameImageAtTime:(QTTime)time
QTMovie.hReturns an NSImage*, CIImage*, CGImageRef, CVPixelBufferRef, or CVOpenGLTextureRef for the movie image at the specified time
- (void *)frameImageAtTime:(QTTime)time withAttributes:(NSDictionary *)attributes error:(NSError **)errorPtr
if an error occurs and the desired type of image cannot be created, then this returns nil and sets errorPtr to an NSError * describing the error. The dictionary of attributes can contain these keys:
QTMovieFrameImageSize
QTMovieFrameImageType
QTMovieFrameImageRepresentationsType
QTMovieFrameImageOpenGLContext
QTMovieFrameImagePixelFormat
QTMovieFrameImageInterlaced
QTMovieFrameImageHighQuality
QTMovieFrameImageSingleField
Note: All images returned by this method are autoreleased objects and must be retained by the caller if they are to be accessed outside of the current run loop cycle.
QTMovie.hAdds information to a QTMovie needed to support aperture modes for tracks created with applications and/or versions of QuickTime that did not support aperture mode dimensions.
- (void)generateApertureModeDimensions
If the image descriptions in video tracks lack tags describing clean aperture and pixel aspect ratio information, the media data is scanned to see if the correct values can be divined and attached. Then the aperture mode dimensions are calculated and set. Afterwards, the QTTrackHasApertureModeDimensionsAttribute property will be set to YES for those tracks. Tracks that do not support aperture modes are not changed.
QTMovie.hRepositions the play position to the beginning of the movie.
- (void)gotoBeginning
If the movie is playing, the movie continues playing from the new position.
QTMovie.hRepositions the play position to the end of the movie.
- (void)gotoEnd
If the movie is playing in one of the looping modes, the movie continues playing accordingly; otherwise, play stops.
QTMovie.hRepositions the movie to the next selection point.
- (void)gotoNextSelectionPoint
QTMovie.hRepositions the play position to the movie’s poster time.
- (void)gotoPosterFrame
If no poster time is defined, the movie jumps to the beginning. If the movie is playing, the movie continues playing from the new position.
Repositions the movie to the previous selection point.
- (void)gotoPreviousSelectionPoint
QTMovie.hReturns YES if the receiver has chapters, NO otherwise.
- (BOOL)hasChapters
QTMovie.hUseful for directly passing filenames and data objects. The QTMovie returned by this method is editable.
- (id)initToWritableData:(NSMutableData *)data error:(NSError **)errorPtr
These methods––initToWritableDataReference:error:, initToWritableFile:error: and initToWritableData:error:––create an empty, writable storage container to which media data can be added (for example, using the QTMovie addImage method). The methods return QTMovie objects associated with those containers.
QTMovie.hCreates a new storage container at the location specified by dataReference and returns a QTMovie object that has that container as its default data reference.
- (id)initToWritableDataReference:(QTDataReference *)dataReference error:(NSError **)errorPtr
QTMovie.hUseful for directly passing filenames and data objects. The QTMovie returned by this method is editable.
- (id)initToWritableFile:(NSString *)filename error:(NSError **)errorPtr
QTMovie.hInitializes a QTMovie object with the attributes specified in attributes.
- (id)initWithAttributes:(NSDictionary *)attributes error:(NSError **)errorPtr
If a QTMovie object cannot be created, an NSError object is returned in the location pointed to by errorPtr. Pass NIL if you do not want an NSError object returned.
A new QTMovie object is created using the specified attributes. There are three types of attributes that can be included in this dictionary:
Attributes that specify the location of the movie data
Attributes that specify how the movie is to be instantiated
Attributes that specify playback characteristics of the movie or other properties of the QTMovie object
The following is a list of the keys that specify the location of the movie data; at least one of these must occur in the dictionary. If more than one occurs, the first one in the dictionary is used.
Attribute |
Description |
|---|---|
The file name string of a QTMovie object; the value for this key is of type |
|
The URL of a QTMovie object; the value for this key is of type |
|
The data reference of a QTMovie object; the value for this key is of type |
|
The pasteboard of a QTMovie object; the value for this key is of type |
|
The data of a QTMovie object; the value for this key is of type |
The following is a list of the keys that specify movie instantiation options; none of these keys is required. If a key is missing, the specified default value is used.
Attribute |
Description |
|---|---|
|
The file offset of a QTMovie. The value for this key is of type |
|
The resolved data reference setting of a QTMovie. The value for this key is of type |
|
The asked unresolved data reference of a QTMovie. The value for this key is of type |
|
The opened synchronization of a QTMovie. The value for this key is of type |
The following is a list of the new keys that specify movie playback characteristics or other properties of the QTMovie object; most other existing movie attributes can be included as well.
Attribute |
Description |
|---|---|
|
The auto-alternate of a QTMovie object. The value for this key is of type |
|
The active setting; the value for this key is of type |
|
When set in a dictionary passed to |
|
The delegate for a QTMovie object. The value for this key is of type |
QTMovie.hInitializes a QTMovie object with the data specified by data.
- (id)initWithData:(NSData *)data error:(NSError **)errorPtr
If a QTMovie object cannot be created, an NSError object is returned in the location pointed to by errorPtr. Pass NIL if you do not want an NSError object returned.
QTMovie.hInitializes a QTMovie object with the data reference setting specified by dataReference.
- (id)initWithDataReference:(QTDataReference *)dataReference error:(NSError **)errorPtr
If a QTMovie object cannot be created, an NSError object is returned in the location pointed to by errorPtr. Pass NIL if you do not want an NSError object returned.
QTMovie.hInitializes a QTMovie object with the data in the file specified by the name fileName.
- (id)initWithFile:(NSString *)fileName error:(NSError **)errorPtr
The fileName is assumed to be a full path name for a file. If a QTMovie object cannot be created, an NSError object is returned in the location pointed to by errorPtr. Pass NIL if you do not want an NSError object returned.
Note that alias files should not be passed into this method; the client application is responsible for resolving aliases before handing them to QTKit methods.
QTMovie.hInitializes a QTMovie object with some or all of the data from an existing QTMovie object movie.
- (id)initWithMovie:(QTMovie *)movie timeRange:(QTTimeRange)range error:(NSError **)errorPtr
The section of data used is delimited by the range range. If a QTMovie object cannot be created, an NSError object is returned in the location pointed to by errorPtr. Pass NIL if you do not want an NSError object returned.
QTMovie.hInitializes a QTMovie object with the contents of the pasteboard specified by pasteboard.
- (id)initWithPasteboard:(NSPasteboard *)pasteboard error:(NSError **)errorPtr
These contents can be a QuickTime movie (of type Movie), a file path, or data of type QTMoviePasteBoardType. If a QTMovie object cannot be created, an NSError object is returned in the location pointed to by errorPtr. Pass NIL if you do not want an NSError object returned.
QTMovie.hInitializes a QTMovie object with the data from an existing QuickTime movie movie.
- (id)initWithQuickTimeMovie:(Movie)movie disposeWhenDone:(BOOL)dispose error:(NSError **)errorPtr
This is the designated initializer for the QTMovie class. The dispose parameter (a BOOL) indicates whether the QTKit should call DisposeMovie on the specified movie when the QTMovie object is deallocated. Passing YES effectively transfers “ownership” of the Movie to the QTKit. (Note that most applications will probably want to pass YES; passing NO means that the application wants to call DisposeMovie itself, perhaps so that it can operate on a Movie after it has been disassociated from a QTMovie object.)
If a QTMovie object cannot be created, an NSError object is returned in the location pointed to by errorPtr. Pass NIL if you do not want an NSError object returned.
QTMovie.hInitializes a QTMovie object with the data in the URL specified by url.
- (id)initWithURL:(NSURL *)url error:(NSError **)errorPtr
If a QTMovie object cannot be created, an NSError object is returned in the location pointed to by errorPtr. Pass NIL if you do not want an NSError object returned.
QTMovie.hinserts into a QTMovie an empty segment delimited by the range range.
- (void)insertEmptySegmentAt:(QTTimeRange)range
If the movie is not editable, this method raises an exception.
QTMovie.hInserts the specified segment from the movie into the receiver, scaled to the range dstRange.
- (void)insertSegmentOfMovie:(QTMovie *)movie fromRange:(QTTimeRange)srcRange scaledToRange:(QTTimeRange)dstRange
This is essentially an Add Scaled operation on a movie. If the movie is not editable, this method raises an exception.
QTMovie.hInserts into a QTMovie at time time the selection in movie delimited by the time range range.
- (void)insertSegmentOfMovie:(QTMovie *)movie timeRange:(QTTimeRange)range atTime:(QTTime)time
If the movie is not editable, this method raises an exception.
QTMovie.hReturns the current idling state of a QTMovie object.
- (BOOL)isIdling
This method allows you to manage the idling state of a QTMovie object, that is, whether it is being tasked. Note that movies attached to a background thread should not be idled; if they are idled, unexpected behavior can result.
QTMovie.hReturns a dictionary containing the current values of all defined movie attributes.
- (NSDictionary *)movieAttributes
A list of supported movie attributes and their acceptable values can be found in the “Constants” section.
QTMovie.hReturns the movie’s data in an NSData object.
- (NSData *)movieFormatRepresentation
QTMovie.hReturns a QTMovie object whose data is the data in the specified time range.
- (id)movieWithTimeRange:(QTTimeRange)range error:(NSError **)errorPtr
If a QTMovie object cannot be created, an NSError object is returned in the location pointed to by errorPtr. Pass NIL if you do not want an NSError object returned.
QTMovie.hReturns the movie’s mute setting.
- (BOOL)muted
QTMovie.hPlays the movie.
- (void)play
QTMovie.hReturns an NSImage for the poster frame of a QTMovie.
- (NSImage *)posterImage
QTMovie.hReturns the QuickTime movie associated with a QTMovie object.
- (Movie)quickTimeMovie
QTMovie.hReturns the QuickTime movie controller associated with a QTMovie object.
- (MovieController)quickTimeMovieController
QTMovie.hReturns the current rate of a QTMovie object.
- (float)rate
QTMovie.hRemoves aperture mode dimension information from a movie's tracks.
- (void)removeApertureModeDimensions
This method does not attempt to modify sample descriptions, so it may not completely reverse the effects of generateApertureModeDimensions. It sets the QTMovieHasApertureModeDimensionsAttribute property to NO.
QTMovie.hRemoves any existing chapters from the receiver.
- (BOOL)removeChapters
Returns YES if either the receiver had no chapters or the chapters were successfully removed from the receiver. Returns NO if the chapters could not for some reason be removed from the receiver. The receiving QTMovie object must be editable or an exception will be raised.
QTMovie.hReplaces the current selection in a QTMovie with the current selection in movie.
- (void)replaceSelectionWithSelectionFromMovie:(id)movie
If the movie is not editable, this method raises an exception.
QTMovie.hScales the QTMovie segment delimited by the segment segment so that it will have the new duration newDuration.
- (void)scaleSegment:(QTTimeRange)segment newDuration:(QTTime)newDuration
If the movie is not editable, this method raises an exception.
QTMovie.hReturns the duration of the movie’s current selection as a QTTime structure.
- (QTTime)selectionDuration
QTMovie.hReturns the end point of the movie’s current selection as a QTTime structure.
- (QTTime)selectionEnd
QTMovie.hReturns the start time of the movie’s current selection as a QTTime structure.
- (QTTime)selectionStart
QTMovie.hSet the movie attribute attributeKey to the value specified by the value parameter.
- (void)setAttribute:(id)value forKey:(NS String *)attributeKey
A list of supported movie attributes and their acceptable values can be found in the “Constants” section.
QTMovie.hSets the movie’s current time setting to time.
- (void)setCurrentTime:(QTTime)time
QTMovie.hSets the movie’s delegate to delegate.
- (void)setDelegate:(id)delegate
QTMovie.hSets the movie to idle YES or not to idle NO.
- (void)setIdling:(BOOL)state
This method allows you to manage the idling state of a QTMovie object, that is, whether it is being tasked. Note that movies attached to a background thread should not be idled; if they are idled, unexpected behavior can result.
QTMovie.hSet the movie attributes using the key-value pairs specified in the dictionary attributes.
- (void)setMovieAttributes:(NSDictionary *)attributes
A list of supported movie attributes and their acceptable values can be found in the “Constants” section.
QTMovie.hSets the movie’s mute setting to mute.
- (void)setMuted:(BOOL)mute
Note that this does not affect the volume.
QTMovie.hSets the movie’s rate to rate.
- (void)setRate:(float)rate
For instance, 0.0 is stop, 1.0 is playback at normal speed, 2.0 is twice normal speed, and so on.
QTMovie.hSets the movie’s selection to selection.
- (void)setSelection:(QTTimeRange)selection
QTMovie.hSets the movie’s volume to volume.
- (void)setVolume:(float)volume
Note that this does not affect the movie’s stored settings.
QTMovie.hReturns a QTTime structure that is the start time of the chapter having the specified 0-based index in the list of chapters.
- (QTTime)startTimeOfChapter:(NSInteger)chapterIndex
QTMovie.hSets the movie backward a single frame.
- (void)stepBackward
QTMovie.hSets the movie forward a single frame.
- (void)stepForward
QTMovie.hStops the movie playing.
- (void)stop
QTMovie.hReturns an array of QTTrack objects associated with the receiver.
- (NSArray *)tracks
QTMovie.hReturns an array of tracks with the specified media type.
- (NSArray *)tracksOfMediaType:(NSString *)type
The type parameter should be one of the media types defined by constants in QTMedia.h beginning with "QTMediaType", for instance, QTMediaTypeVideo.
QTMovie.hUpdates the movie file of a QTMovie.
- (BOOL)updateMovieFile
Returns YES if the update succeeds and NO otherwise.
QTMovie.hReturns the movie’s volume as a scalar value of type float.
- (float)volume
The valid range is 0.0 to 1.0.
QTMovie.hReturns YES if the movie file was successfully created and NO otherwise.
- (BOOL)writeToFile:(NSString *)fileNamewithAttributes :(NSDictionary *)attributes
This method returns YES if the movie file was successfully created and NO otherwise. NO will also be returned if the load state of the target is less than QTMovieLoadStateComplete, in which case no attempt is made to write the QTMovie into a file. If the dictionary attributes contains an object whose key is QTMovieFlatten, then the movie is flattened into the specified file. If the dictionary attributes contains an object whose key is QTMovieExport, then the movie is exported into the specified file using a movie exporter whose type is specified by the value of the key QTMovieExportType. The value associated with the QTMovieExportSettings key should be an object of type NSData that contains an atom container of movie export settings.
QTMovie.hReturns an NSError object if an error occurs and if errorPtr is non-NULL.
- (BOOL)writeToFile:(NSString *)fileName withAttributes:(NSDictionary *)attributes error:(NSError **)errorPtr
The method operates exactly like the existing QTMovie writeToFile:withAttributes method.
QTMovie.hThis method is called, if implemented by a QTMovie delegate object, when an external movie needs to be found (usually for a wired action targeted at an external movie).
- (QTMovie *)externalMovie:(NSDictionary *)dictionary
The keys for the dictionary in this delegate method are: QTMovieTargetIDNotificationParameter and QTMovieTargetNameNotificationParameter. The QTMovieTargetIDNotificationParameter key indicates that the delegate should return a QTMovie object that has the specified movie ID. The QTMovieTargetNameNotificationParameter key indicates that the delegate should return a QTMovie object that has the specified movie name.
QTMovie.hCalled to handle the mcAction mcActionLinkToURL.
- (BOOL)movie:(QTMovie *)movielinkToURL :(NSURL *)url
Most applications will not need to install a delegate to handle this.
QTMovie.hIf implemented, this method is called periodically during lengthy operations (such as exporting a movie).
- (BOOL)movie:(QTMovie *)movieshouldContinueOperation :(NSString *)opwithPhase :(QTMovieOperationPhase)phaseatPercent :(NSNumber *)percentwithAttributes :(NSDictionary *)attributes
A delegate can implement this method. The op string is a localized string that indicates what the operation is. The phase indicates whether the operation is just beginning, ending, or is at a certain percentage of completion. If the phase is QTMovieOperationUpdatePercentPhase, then the percent parameter indicates the percentage of the operation completed. The attributes dictionary may be NIL; if not NIL, it is the same dictionary passed to a QTMovie method that caused the lengthy operation (for example, the attributes dictionary passed to writeToFile). The constants for this method are defined as follows:
typedef enum { |
QTMovieOperationBeginPhase = movieProgressOpen, |
QTMovieOperationUpdatePercentPhase = movieProgressUpdatePercent, |
QTMovieOperationEndPhase = movieProgressClose |
} |
QTMovie.hIf a QTMovie object has a delegate and that delegate implements this method, that method will be called before QTKit performs the standard idle processing on a movie.
- (BOOL)movieShouldTask:(id)movie
The delegate can cancel that normal processing by returning YES.
QTMovie.hThe following constants specify the movie attributes that you can get and set using the movieAttributes and setMovieAttributes methods. To get or set a single attribute, use attributeForKey or setAttribute.
Constant | Description | |
|---|---|---|
QTMovieActiveSegmentAttribute | The active segment of a QTMovie object; the value for this key is of type NSValue, interpreted as a QTTimeRange structure. (Deprecated. This constant is available in Mac OS X 10.4 and later, but deprecated in Mac OS X 10.5.) | |
QTMovieApertureModeAttribute | Sets the aperture mode attribute on a QTMovie object to indicate whether aspect ratio and clean aperture correction should be performed. When a movie is in clean, production, or encoded pixels aperture mode, each track's dimensions are overridden by special dimensions for that mode. The original track dimensions are preserved and can be restored by setting the movie into classic aperture mode. Aperture modes are not saved in movies. The associated value is of type
| |
QTMovieAutoAlternatesAttribute | The auto-alternate state of a QTMovie object. The value for this key is of type | |
QTMovieCopyrightAttribute | The copyright string of a QTMovie object; the value for this key is of type | |
QTMovieCreationTimeAttribute | The creation time of a QTMovie object; the value for this key is of type | |
QTMovieCurrentSizeAttribute | The current size of a QTMovie object; the value for this key is of type | |
QTMovieCurrentTimeAttribute | The current time of a QTMovie object; the value for this key is of type | |
QTMovieDataSizeAttribute | The data size of a QTMovie. The value for this key is of type | |
QTMovieDelegateAttribute | The delegate for a QTMovie object. The value for this key is of type | |
QTMovieDisplayNameAttribute | The display name of a QTMovie object. A display name is stored as user data in a movie file and hence may differ from the base name of the movie’s filename or URL. The value for this key is of type | |
QTMovieDontInteractWithUserAttribute | When set in a dictionary passed to | |
QTMovieDurationAttribute | The duration of a QTMovie object; the value for this key is of type | |
QTMovieEditableAttribute | The editable setting; the value for this key is of type | |
QTMovieFileNameAttribute | The file name string of a QTMovie object; the value for this key is of type | |
QTMovieHasApertureModeDimensionsAttribute | The aperture mode dimensions set on any track in this QTMovie object, even if those dimemsions are all identical to the classic dimensions (as is the case for content with square pixels and no edge-processing region). The value for this key is of type | |
QTMovieHasAudioAttribute | The audio data setting; the value for this key is of type | |
QTMovieHasDurationAttribute | The duration setting; the value for this key is of type | |
QTMovieHasVideoAttribute | The video data setting; the value for this key is of type | |
QTMovieIsActiveAttribute | The active setting; the value for this key is of type | |
QTMovieIsInteractiveAttribute | The interactive setting; the value for this key is of type | |
QTMovieIsLinearAttribute | The linear setting; the value for this key is of type | |
QTMovieIsSteppableAttribute | The steppable setting; the value for this key is of type | |
QTMovieLoadStateAttribute | The load state value; the value for this key is of type
The Mac OS X v10.5 and later. | |
QTMovieLoopsAttribute | The looping setting; the value for this key is of type | |
QTMovieLoopsBackAndForthAttribute | The palindrome looping setting; the value for this key is of type | |
QTMovieModificationTimeAttribute | The modification time of a QTMovie object; the value for this key is of type | |
QTMovieMutedAttribute | The mute setting; the value for this key is of type | |
QTMovieNaturalSizeAttribute | The natural size of a QTMovie object; the value for this key is of type | |
QTMoviePlaysAllFramesAttribute | The play-all-frames setting; the value for this key is of type | |
QTMoviePlaysSelectionOnlyAttribute | The play-selection setting; the value for this key is of type | |
QTMoviePosterTimeAttribute | The movie poster time of a QTMovie object; the value for this key is of type | |
QTMoviePreferredMutedAttribute | The preferred mute setting; the value for this key is of type | |
QTMoviePreferredRateAttribute | The preferred rate; the value for this key is of type | |
QTMoviePreferredVolumeAttribute | The preferred volume; the value for this key is of type | |
QTMoviePreviewModeAttribute | The preview mode setting; the value for this key is of type | |
QTMoviePreviewRangeAttribute | The preview range of a QTMovie object; the value for this key is of type | |
QTMovieRateAttribute | The movie rate; the value for this key is of type | |
QTMovieRateChangesPreservePitchAttribute | When the playback rate is not unity, audio must be resampled in order to play at the new rate. The default resampling affects the pitch of the audio (for example, playing at 2x speed raises the pitch by an octave, 1/2x lowers an octave). If this property is set on the Movie, an alternative algorithm is used, which alters the speed without changing the pitch. As this is more computationally expensive, this property may be silently ignored on some slow CPUs. | |
QTMovieSelectionAttribute | The selection range of a QTMovie object; the value for this key is of type | |
QTMovieTimeScaleAttribute | The movie time scale; the value for this key is of type | |
QTMovieURLAttribute | The URL of a QTMovie object; the value for this key is of type | |
QTMovieVolumeAttribute | The movie volume; the value for this key is of type |
The following constants specify items in dictionaries passed to QTMovie notifications and delegate methods.
The following constants are dictionary keys that you can use to specify movie attributes, using the writeToFile method.
The following constants are dictionary keys that you can use to specify movie attributes, using the addImage method.
Constant | Description |
|---|---|
QTAddImageCodecType | The image codec string; the value for this key is of type |
QTAddImageCodecQuality | The image codec value; the value for this key is of type |
The following is a dictionary of attributes can contain these keys, using the frameImageAtTime:withAttributes:error: method.
The following constants are data locators that you can use to specify movie attributes, using the movieWithAttributes and initWithAttributes methods.
The following constants are movie instantiation options that you can use to specify movie attributes, using the movieWithAttributes and initWithAttributes methods.
These constants allow applications to get information about a movie and its chapters, and to navigate within a movie by chapters. Since chapters are a reasonably common feature of movies and podcasts, QTKit enables developers to create them.
Issued when the aperture mode of the target QTMovie object changes.
QTMovie.h
Issued when the chapter associated with QTMovie changes.
This notification contains no information in the userInfo dictionary.
QTMovie.h
Issued when the chapter list associated with QTMovie changes.
This notification contains no information in the userInfo dictionary.
QTMovie.h
Sent when a request is made to close the movie’s window.
This notification contains no information in the userInfo dictionary.
QTMovie.h
Sent when the movie is “done” or at its end.
This notification contains no userInfo parameters. It is equivalent to the standard player controller’s mcActionMovieFinished action.
QTMovie.h
Sent when the editable state of a movie has changed.
QTMovie.h
Sent when a movie has been edited.
This notification contains no userInfo dictionary.
QTMovie.h
Sent when a request is made to play back a movie in full screen mode.
This notification contains no information in the userInfo dictionary.
QTMovie.h
Sent when a request is made to play back a movie in normal windowed mode.
This notification contains no information in the userInfo dictionary.
QTMovie.h
Sent when the load state of a movie has changed.
QTMovie.h
Sent when a change is made in a movie’s looping mode.
This notification contains no information in the userInfo dictionary.
QTMovie.h
Sent when a movie message has been received by the movie controller.
Movie messages can be sent to an application by wired actions (for instance, a wired sprite) or by code that issues the mcActionShowMessageString movie controller action. The userInfo dictionary contains a single entry whose value is of type NSString, which is the movie message.
QTMovie.h
Sent when the rate of a movie has changed.
The userInfo dictionary contains a single entry whose value is of type NSNumber that represents a float, which is the new rate.
QTMovie.h
Sent when the selection of a movie has changed.
This notification contains no userInfo dictionary.
QTMovie.h
Sent when the size of a movie has changed.
This notification contains no userInfo dictionary.
QTMovie.h
Status messages can be sent by QuickTime’s streaming components or by any code that wants to display a message in the movie controller bar status area.
The userInfo dictionary contains a single entry whose value is of type NSString, which is the status message.
The following are keys (notification parameters) for userInfo items for the QTMovieStatusStringPostedNotification notification QTMovieStatusCodeNotificationParameter and QTMovieStatusStringNotificationParameter.
A status string notification can indicate an error (in which case QTMovieStatusCodeNotificationParameter will have a value), or it can contain a string (in which case QTMovieStatusStringNotificationParameter will have a value). For more information, see mcActionShowStatusString.
QTMovie.h
Sent when the time in a movie has changed to a value other than what it would be during normal playback.
The QTMovieTimeDidChangeNotification is fired whenever the movie time changes to a time other than what it would be during normal playback. So, for example, this notification is not fired every frame.
QTMovie.h
Sent when the volume of a movie has changed.
QTMovie.h
© 2009 Apple Inc. All Rights Reserved. (Last updated: 2009-01-07)