У меня проблема с OpenAL, которая, похоже, возникает только с аппаратным обеспечением iPod, и странным является то, что работал нормально, а теперь нет.
Я настраиваю аудио сеанс:
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord error: nil];
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute,
sizeof(UInt32), &audioRouteOverride);
AudioSessionSetActive(YES);
И инициализация OpenAL:
device = alcOpenDevice(NULL);
if (!device) {
NSLog(@"Could not open default OpenAL device.");
return NO;
}
context = alcCreateContext(device, 0);
if (!context) {
NSLog(@"Failed to create OpenAL context for default device.");
return NO;
}
BOOL success = alcMakeContextCurrent(context); // fails here
if (!success) {
NSLog(@"Failed to set current OpenAL context.");
return NO;
Вывод:
AudioStreamBasicDescription: 2 ch, 44100 Hz, 'lpcm' (0x00000C2C) 8.24-bit little-endian signed integer, deinterleaved
2010-10-27 10:51:09.261 FinchTestProject[239:307] Failed to set current OpenAL context.
Итак, функция alcMakeContextCurrent возвращает false, и я не уверен, почему. Аудио не является моей компетенцией, и я не могу найти много информации по этому вопросу, поэтому любая помощь, которую вы, ребята, можете оказать мне, была бы признательна.
Спасибо!
РЕДАКТИРОВАТЬ: Я обнаружил, что если я изменил порядок инициализации, то есть если я инициализирую OpenAL, а затем AudioSession, это работает ... хотя это был порядок, в котором я имел его раньше, и он не работал так что определенно происходит что-то смешное; Кроме того, он все еще не работает со старыми версиями iOS