J'utilise XCode 4.5 pour iPhone et OpenAL. Le problème est que je ne peux pas supprimer les tampons sonores, après avoir joué un son : alSourcePlay().
Si je ne joue pas la source - les tampons sont supprimés et la mémoire vive est libérée sans problème.
Chargement du son :
alGenBuffers(1, &bufferID);
// Loading awaiting data blob into buffer.
alBufferData(bufferID, format, outData, size, freq);
// Getting source ID from OpenAL.
alGenSources(1, &sourceID);
// Attacing buffer to source.
alSourcei(sourceID, AL_BUFFER, bufferID);
//playing sound (if i comment this line, the problem dissapears)
alSourcePlay(soundId);
Libérer le son :
//detaching buffer
alSourcei(sourceID, AL_BUFFER, bufferID);
//deleting source
alDeleteSources(1, &sourceID);
//deleting buffer
alDeleteBuffers(1, &bufferID);
La suppression des tampons n'entraîne pas d'erreur, mais ils ne sont pas libérés de la mémoire. J'utilise Instruments pour surveiller la mémoire.
J'ai passé une semaine à chercher une solution et à lire la documentation d'OpenAL.
Si vous avez de l'expérience dans OpenAL, aidez-nous !
Merci !