AudioConverterFillComplexBuffer'!stt'错误

时间:2014-01-13 17:55:20

标签: ios objective-c core-audio

我有一个音频应用程序,有时需要将音频数据从PCM编码为AAC格式。我正在使用软件解码器(实际上我并不关心使用什么编码器,但我已经检查了两次,并且有软件解码器)。我正在使用(https://github.com/TheAmazingAudioEngine/TheAmazingAudioEngine库)

我将音频会话类别设置为kAudioSessionCategory_PlayAndRecord

拥有这些格式

// Output format
outputFormat.mFormatID = kAudioFormatMPEG4AAC;
outputFormat.mSampleRate = 44100;
outputFormat.mFormatFlags = kMPEG4Object_AAC_Scalable;
outputFormat.mChannelsPerFrame = 2;
outputFormat.mBitsPerChannel = 0;
outputFormat.mBytesPerFrame = 0;
outputFormat.mBytesPerPacket = 0;
outputFormat.mFramesPerPacket = 1024;

// Input format
audioDescription.mFormatID          = kAudioFormatLinearPCM;
audioDescription.mFormatFlags       = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked | kAudioFormatFlagsNativeEndian | kAudioFormatFlagIsNonInterleaved;
audioDescription.mChannelsPerFrame  = 2;
audioDescription.mBytesPerPacket    = sizeof(SInt16);
audioDescription.mFramesPerPacket   = 1;
audioDescription.mBytesPerFrame     = sizeof(SInt16);
audioDescription.mBitsPerChannel    = 8 * sizeof(SInt16);
audioDescription.mSampleRate        = 44100.0;

所有与kAudioSessionProperty_OverrideCategoryMixWithOthers == YES

完美配合

但是当我使用kAudioSessionProperty_OverrideCategoryMixWithOthers设置NO时:

iOS Simulator - OK
iPod (6.1.3) - OK
iPhone 4S (7.0.3) - Fail with ('!sst' error on `AudioConverterFillComplexBuffer`) call
iPad 3(7.0.3) - Fail

正如我已经说过,所有工作正常,直到我将音频会话属性kAudioSessionProperty_OverrideCategoryMixWithOthers更改为NO

所以问题是:

的错误是什么? (我没有在Headers和文档中找到任何线索这个错误意味着什么(在任何公共框架头文件中也没有'!sst'字符串))

如何解决?

如果您有任何其他想法,您认为我需要尝试 - 请随意发表评论。

0 个答案:

没有答案