¿Puede openera el registro en sí mismo?
Pregunta
Me gustaría capturar el audio saliente de un juego y grabarlo en un archivo de audio a medida que se juega.¿Es esto posible en el marco en OpenSl?¿Como conectando el Outputmix a un audioCorder, o algo así?
Gracias en avanzado.
Solución
Puede registrar una devolución de llamada a la cola y obtener el búfer de salida antes / después de que se enquegue en la cola de búfer para la salida.Puede tener un Wavbuffer (una matriz corta a lo largo del tamaño del búfer) que se escribe en cada enquema de un nuevo búfer.Los contenidos de este búfer se escriben en un archivo.
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 configuración básica de OpenSL para la devolución de llamada de la cola se explica en algunos detalles en esta página
y un medio muy básico para crear un archivo WAV en C ++ se puede encontrar aquí Tenga en cuenta queDebe tener una idea bastante definitiva del tamaño real del archivo WAV total, ya que es parte de su encabezado.