Pergunta

Estou tendo um problema com o Open que apenas parece ocorrer com o hardware do iPod, e o estranho é que isso foi funcionando bem, e agora não é.

Estou configurando a sessão de áudio:

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord error: nil];
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, 
sizeof(UInt32), &audioRouteOverride);

AudioSessionSetActive(YES);

E inicializando o 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;

A saída é:

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.

Portanto, a função AlcmakEContextCurrent está retornando falsa e não sei por que. O áudio não é realmente minha experiência, e não consigo encontrar muita informação sobre isso, então qualquer ajuda que vocês possam me dar seriam apreciados.

Obrigado!

EDIT: Descobri se reverter a ordem de inicialização- ou seja, se eu inicializar o Openal e depois o Audiossession, funciona ... embora essa seja a ordem em que eu tinha antes e não estava funcionando, então algo engraçado está definitivamente acontecendo; Além disso, ainda não funciona com versões mais antigas do iOS

Foi útil?

Solução

A ordem reversa de inicialização parece funcionar bem, aberta e depois audiostação

Outras dicas

Apenas um palpite selvagem:

O iPod touch de 1ª geração não tenho Um falador. Então, talvez você não possa substituir a rota de áudio para um alto-falante inexistente.

Editar: Ah, e apenas o mais recente (4ª geração) iPod Touch possui um microfone embutido. Todas as outras gerações exigem que os fones de ouvido (com microfone) sejam conectados para gravar. Talvez seja por isso que parou de funcionar de repente, os fones de ouvido foram removidos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top