Question

Je voudrais capturer l'audio sortant d'un jeu et l'enregistrer dans un fichier audio tel qu'il est joué.Est-ce possible dans le cadre de OpenSL?Comme en connectant la sortieMIX à un audiorecorder ou quelque chose?

merci à avancé.

Était-ce utile?

La solution

Vous pouvez enregistrer un rappel à la file d'attente et obtenir le tampon de sortie avant / après avoir été mis en balance dans la file d'attente tampon pour la sortie.Vous pourriez avoir un ondbbuffer (un tableau court la longueur de la taille de la mémoire tampon) qui est écrit à chaque enquentage d'un nouveau tampon.Le contenu de ce tampon est ensuite écrit dans un fichier.

outBuffer = p->outputBuffer[p->currentOutputBuffer];  // obtain float buffer

for ( int i = 0; i < bufferSize; ++i )
    wavBuffer = ( short ) outBuffer[ i ] * 32768; // convert float to short

// now append contents of wavBuffer into a file

La configuration OpenSL de base pour le rappel de la file d'attente est expliquée dans certains détails sur cette page

et un moyen très basique de créer un fichier WAV en C ++ peuvent être trouvés ici Notez queVous devez avoir une idée assez définitive de la taille réelle du fichier WAV au total car elle fait partie de son en-tête.

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