我想使用QuickTime-API提取quicktime電影中的每個音頻通道。這意味着如果文件有5.1環繞聲,我最終需要6個音頻文件。 但目前我不知道如何管理。到現在爲止,我有:提取QuickTime文件中的每個音頻通道
OSStatus err = noErr;
MovieAudioExtractionRef extractionSessionRef = nil;
Boolean allChannelsDiscrete = true;
int flags;
int numFrames;
AudioBufferList *mBufferList;
err = MovieAudioExtractionBegin(movie, 0, &extractionSessionRef);
// disable mixing of audio channels
err = MovieAudioExtractionSetProperty(extractionSessionRef,
kQTPropertyClass_MovieAudioExtraction_Movie,
kQTMovieAudioExtractionMoviePropertyID_AllChannelsDiscrete,
sizeof (Boolean), &allChannelsDiscrete);
err = MovieAudioExtractionFillBuffer(extractionSessionRef, &numFrames,
mBufferList, &flags);
if (flags & kQTMovieAudioExtractionComplete)
{
// extraction complete!
}
err = MovieAudioExtractionEnd(extractionSessionRef);
的問題是,我不知道怎麼去mBufferList
以及如何每通道爲WAV 48kHz的出口。你可以幫我嗎?該示例來自this page。
如果你解釋你正在使用的庫,你可能會得到更多的答案。 – 2010-07-06 09:32:57
好吧,只是補充說我使用Quicktime-API/QuickTime-SDK – Berschi 2010-07-06 09:47:39