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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top