au travail, nous sommes incapables d'utiliser alSourcePause()
pour suspendre les sons, et dans tous les cas, nous pourrions vouloir démarrer le son avec un décalage.OpenAL sur Mac OS X: Réglage AL_SAMPLE_OFFSET ne fait rien
Nous effectuons un "resume" en faisant alSourcei(this->sourceId, AL_SAMPLE_OFFSET, this->sampleOffset);
avec un offset d'échantillon que nous avons récupéré avec alGetSourcei()
. Nous avons essayé d'utiliser AL_SEC_OFFSET
, AL_BYTE_OFFSET
et AL_SAMPLE_OFFSET
- en vain. Nous avons lu que la source sonore doit être dans l'état "initial"; recréer la source et attacher le tampon, puis tenter de sauter aussi n'a pas aidé.
La modification du tampon pour ignorer AL_BYTE_OFFSET
n'est pas une solution car cela complique la mise en boucle.
Les sons en continu sautent sur des machines plus lentes; nous avons du mal à mettre en place un jeu multithread.
Puisque nous sommes sur un calendrier serré, quelle est la meilleure façon d'ignorer une partie d'une source sonore simple sur OpenAL sous OS X? Le code source est disponible à our Sourceforge repository.
Les gens de mon ancien lieu de travail ont vérifié cela il y a quelques jours, et ils sont satisfaits de cette solution. Donc, presque deux ans plus tard, voici la coche verte! :-) –