I want to take a QTMovie that I have and export it with the audio fading in and fading out for a predetermined amount of time. I want to do this within Cocoa as much as possible. The movie will likely only have audio in it. My research has turned up a couple of possibilities:

  1. Use the newer Audio Context Insert APIs. This appears to be the most modern was to accomplish this.

  2. Use the Quicktime audio extraction APIs to pull out the audio track of the movie and process it and then put the processed audio back into the movie replacing the original audio.

Am I missing some much easier method?

+3  A: 

Quicktime has the notion of Tween Tracks. A tween track is a track that allows you to modify the properties of another set of tracks properties (such as the volume).

See Creating a Tween Track in the Quicktime docs to see an example of how to do this with an Quicktime audio track's volume.

There is also a more complete example called qtsndtween on the Apple Developer website.

Of course, all of this code requires using the Quicktime C APIs. If you can live with building a 32-bit only application, you can get the underlying Quicktime-C handles from a QTMovie, QTTrack, or QTMedia object using the "movie", "track", or "media" functions respectively.

Hopefully we'll get all the features of the Quicktime C APIs in the next version of QTKit, whenever that may be.

Nick Haddad