Domanda

Sto avendo un problema con l'apertura che sembra solo accadere con hardware per iPod, e la cosa strana è che era Funzionando bene, e ora non lo è.

Sto impostando la sessione audio:

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

AudioSessionSetActive(YES);

E inizializza apertura:

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;

L'output è:

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.

Quindi la funzione AlcMakeContextCurrent sta restituendo false, e non sono sicuro del perché. L'audio non è davvero la mia esperienza e non riesco a trovare molte informazioni su questo, quindi qualsiasi aiuto che voi ragazzi possa darmi sarebbe apprezzato.

Grazie!

EDIT: ho scoperto che se invertono l'ordine di inizializzazione, cioè se inizialisca aperta e poi l'audiosessione, funziona ... anche se questo è l'ordine in cui avevo prima e non funzionava, quindi qualcosa di divertente sta sicuramente succedendo; Inoltre, non funziona ancora con le versioni precedenti di iOS

È stato utile?

Soluzione

L'ordine inverso dell'inizializzazione sembra funzionare OK, apertura e audiosessione

Altri suggerimenti

Solo un'ipotesi selvaggia:

L'iPod touch di 1a generazione no avere un oratore. Quindi forse non puoi prevalere sul percorso audio per un oratore inesistente.

Modificare: OH, e solo l'iPod touch (di 4a generazione) ha un microfono integrato. Tutte le altre generazioni richiedono che le cuffie (con microfono) siano collegate per la registrazione. Forse è per questo che ha smesso di funzionare all'improvviso, le cuffie sono state rimosse.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top