Comment obtenez-vous la position actuelle d'une source de jeu dans openal? Je suppose que je veux dire, quelle position dans l'audio joue actuellement sur le matériel après avoir traversé vos tampons, tampons d'openal, les tampons de matériel, etcopenal: Obtenir la position de lecture actuelle d'une source
J'ai eu un bref aperçu de l'API mais je suis pas tout à fait sûr de ce que AL_SAMPLE_OFFSET/AL_BYTE_OFFSET/AL_SEC_OFFSET sont censés représenter. Si je joue une source de streaming, je ne semble pas obtenir un nombre en constante augmentation, il semble que je reçois une position dans le tampon de lecture en cours? (Ou de tous les tampons?)
par exemple, tout en jouant, je boucle et exécuter ce code:
alGetSourcef(sources[0], AL_SAMPLE_OFFSET, &secoffset);
printf(" - %f samples\n", secoffset);
et obtenir
- 0.000000 samples
- 8192.000000 samples
- 9216.000000 samples
- 5632.000000 samples
qui ne semble pas augmenter.
Ceci est sur macos 10.7 avec le dernier xcode 4.3 mais je suppose qu'il devrait être similaire sur d'autres plates-formes.
mise à jour:
J'ai essayé d'augmenter la taille de la mémoire tampon et il ne semble vraiment comme sa seule la position actuelle dans la mémoire tampon en cours de lecture:
- 0.000000 bytes
- 18432.000000 bytes
- 20480.000000 bytes
- 36864.000000 bytes
- 36864.000000 bytes
- 55296.000000 bytes
- 55296.000000 bytes
- 73728.000000 bytes
refilling buffer 2408
re-queued buffer 2408
- 16384.000000 bytes
- 34816.000000 bytes
- 34816.000000 bytes
- 51200.000000 bytes
- 51200.000000 bytes
- 69632.000000 bytes
refilling buffer 2409
re-queued buffer 2409
Donc, étant donné que, est-il décent façon de garder la trace que joue ouvert à travers plusieurs tampons différents?
Merci pour cela. Je n'ai pas lu les spécifications plus tard (j'ai supposé que le guide de programmation serait suffisant). –