AVassetExportSession убивает мое аудио - PullRequest
2 голосов
/ 31 августа 2010

когда я запускаю –exportAsynchronouslyWithCompletionHandler: метод AVassetExportSession, мое аудио перестает воспроизводиться. Я использую AudioQueue и OpenAL, они оба должны быть перезапущены после начала сеанса экспорта. Есть ли какая-то хитрость, чтобы заставить их работать без перезапуска аудио?

1 Ответ

3 голосов
/ 04 ноября 2010

Хорошо. Никто не ответил мне, поэтому я отвечу сам. Понял, что при экспорте с AVAssetExportSession он создает свою собственную аудио-очередь, поэтому он убивает мою, поэтому перед началом моей очереди все, что мне нужно, это установить некоторые свойства в AudioSession.

AudioSessionInitialize(CFRunLoopGetCurrent(), 
                             kCFRunLoopCommonModes, 
                             NULL, 
                             NULL);
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, 
                              sizeof(kAudioSessionCategory_MediaPlayback), 
                              &(int) 
                              {kAudioSessionCategory_MediaPlayback});
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers, 
                              sizeof (UInt32), 
                              &(UInt32) 
                              {1});
AudioSessionSetActive(YES);
...