home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Developer Kit / QuickTime 2.0 Developer Kit.iso / mac / MAC / Programming Stuff / Sample Code / Movie Toolbox / Inside Mac Movie Toolbox Code / mtb10.c < prev    next >
Encoding:
Text File  |  1994-12-05  |  1.7 KB  |  67 lines  |  [TEXT/MPS ]

  1. /*
  2.   File:            mtb10.c
  3.   Contains:        Sound Functions
  4.   Written by:    DTS and QT Engineering
  5.   Copyright:    © 1992-1994 by Apple Computer, Inc., all rights reserved.
  6.   Change History (most recent first):
  7.   <1>         12/4/94    khs        changed the format of the file to the new look and feel
  8.   To Do:
  9. */
  10.  
  11.  
  12. // INCLUDES
  13. #include "mtb.h"
  14.  
  15.  
  16. // FUNCTIONS
  17. void CreateMySoundTrack(Movie theMovie)
  18. {
  19.     Track theTrack;
  20.     Media theMedia;
  21.     Handle sndHandle = nil;
  22.     SoundDescriptionHandle sndDesc = nil;
  23.     long sndDataOffset;
  24.     long sndDataSize;
  25.     long numSamples;
  26.     OSErr err = noErr;
  27.  
  28.  
  29.     sndHandle = GetResource('snd ', 128);
  30.     CheckError(ResError(), "\pGetResource");
  31.     if (sndHandle == nil)
  32.         return;
  33.  
  34.     sndDesc = (SoundDescriptionHandle)NewHandle(4);
  35.     CheckError(MemError(), "\pNewHandle");
  36.  
  37.     CreateSoundDescription(sndHandle, sndDesc, &sndDataOffset, &numSamples, &sndDataSize);
  38.  
  39.     theTrack = NewMovieTrack(theMovie, 0, 0, kFullVolume);
  40.     CheckError(GetMoviesError(), "\pNewMovieTrack");
  41.  
  42.     theMedia = NewTrackMedia(theTrack, SoundMediaType, FixRound((**sndDesc).sampleRate), nil, 0);
  43.     CheckError(GetMoviesError(), "\pNewTrackMedia");
  44.  
  45.     err = BeginMediaEdits(theMedia);
  46.     CheckError(err, "\pBeginMediaEdits");
  47.  
  48.     err = AddMediaSample(theMedia, sndHandle, sndDataOffset,// offset in data
  49.                          sndDataSize, 1,        // duration of each sound sample
  50.                          (SampleDescriptionHandle)sndDesc, numSamples, 0,// self-contained samples
  51.                          nil);
  52.     CheckError(err, "\pAddMediaSample");
  53.  
  54.     err = EndMediaEdits(theMedia);
  55.     CheckError(err, "\pEndMediaEdits");
  56.  
  57.     err = InsertMediaIntoTrack(theTrack, 0,        // track start time
  58.                                0,                // media start time
  59.                                GetMediaDuration(theMedia), fixed1);
  60.     CheckError(err, "\pInsertMediaIntoTrack");
  61.  
  62.     if (sndDesc != nil)
  63.         DisposeHandle((Handle)sndDesc);
  64. }
  65.  
  66.  
  67.