Question

Je suis un problème avec OpenAL qui semble ne se produire avec le matériel iPod, et la chose étrange est que n'a fonctionne bien, et maintenant ce n'est pas.

Je la mise en place de la session audio:

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

AudioSessionSetActive(YES);

Et l'initialisation 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;

La sortie est la suivante:

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.

fonction Donc alcMakeContextCurrent retourne faux, et je ne sais pas pourquoi. Audio est pas vraiment mon expertise, et je ne trouve pas beaucoup d'informations à ce sujet, de sorte que toute aide que vous les gars peuvent me donner serait apprécié.

Merci!

EDIT: Je l'ai trouvé si j'inverser l'ordre de initialization- qui est si je puis initialiser OpenAL la AudioSession, cela fonctionne ... bien que ce soit l'ordre que je l'avais avant et il ne fonctionnait pas, donc quelque chose de drôle va sans aucun doute sur; En outre, il ne fonctionne toujours pas avec les anciennes versions d'iOS

Était-ce utile?

La solution

Inverser ordre d'initialisation semble fonctionner ok, OpenAL puis AudioSession

Autres conseils

Juste une supposition sauvage:

La 1ère génération iPod touch ne fonctionne pas Vous un haut-parleur. Ainsi, vous pouvez peut-être pas l'emporter sur la voie audio vers un haut-parleur inexistant.

Modifier :. Oh, et seulement la dernière (4ème génération) iPod touch dispose d'un microphone intégré dans toutes les autres générations exigent que le casque (avec microphone) être branché à enregistrer. Peut-être que la raison pour laquelle il a cessé de fonctionner tout d'un coup, le casque ont été supprimés.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top