2010-08-31 52 views
2

当我启动-exportAsynchronouslyWithCompletionHandler:AVassetExportSession的方法时,我的音频停止播放。我正在使用AudioQueue和OpenAL,它们都需要在开始导出会话后重新启动。有没有什么窍门让他们在没有重新启动音频的情况下工作?AVassetExportSession杀死我的音频

回答

3

好吧。没有人回答我,所以我会回答自己。想象一下,当使用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);