Мое приложение играет музыку в фоновом режиме. У меня есть аудио ключ на в режимах фона, моя звуковая сессия выглядит следующим образом:Ошибка ExtAudioFileRead с кодом -40
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *err = NULL;
[audioSession setCategory:AVAudioSessionCategoryPlayback error:&err];
if(err){
NSLog(@"There was an error creating the audio session");
}
[audioSession setMode:AVAudioSessionModeDefault error:&err];
if(err){
NSLog(@"There was an error setting mote to the audio session");
}
[[AVAudioSession sharedInstance] setActive:YES error:&err];
if(err){
NSLog(@"There was an error setting mote to the audio session");
}
Я играю через AUGraph, который выполнен с 2-мя узлами: Remote I/O и Mixer:
AudioComponentDescription outputcd;
outputcd.componentFlags = 0;
outputcd.componentFlagsMask = 0;
outputcd.componentManufacturer = kAudioUnitManufacturer_Apple;
outputcd.componentSubType = kAudioUnitSubType_RemoteIO;
outputcd.componentType = kAudioUnitType_Output;
// Multichannel mixer unit
AudioComponentDescription MixerUnitDescription;
MixerUnitDescription.componentType = kAudioUnitType_Mixer;
MixerUnitDescription.componentSubType = kAudioUnitSubType_AU3DMixerEmbedded;
MixerUnitDescription.componentManufacturer = kAudioUnitManufacturer_Apple;
MixerUnitDescription.componentFlags = 0;
MixerUnitDescription.componentFlagsMask = 0;
Также согласно Technical QA я добавил
UInt32 maxFPS = 4096;
AudioUnitSetProperty(_mixerUnit, kAudioUnitProperty_MaximumFramesPerSlice,kAudioUnitScope_Global, 0, &maxFPS,sizeof(maxFPS));
Но до сих пор не повезло, что мое приложение сохраняет болидом g на ExtAudioFileRead в функции обратного вызова Render около 10 секунд, когда я блокирую iPhone. Какие-либо предложения? Важно отметить, что эта ошибка не воспроизводится на ios 7.
Мои дальнейшие исследования показали, что эта ошибка воспроизводится только на iOS 8.1.2. По-видимому, это ошибка IOS – zshcbka