AVassetExportSession会杀死我的音频

时间:2010-08-31 11:17:50

标签: iphone ios4 core-audio openal

当我启动-exportAsynchronouslyWithCompletionHandler:AVassetExportSession的方法时,我的音频停止播放。我正在使用AudioQueue和OpenAL,它们都需要在开始导出会话后重新启动。是否有任何技巧可以让它们在不重新启动音频的情况下工作?

1 个答案:

答案 0 :(得分: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);