Escritura de audio sin procesar WebRTC (AudioTrackSinkInterface) en el disco

Estoy tratando de grabar el audio transferido por un WebRTCPeerConnection MediaStream. Agregué un sumidero a la pista de audio que implementaAudioTrackSinkInterface. Implementa elOnData método:

void TestAudioTrackSink::OnData(const void* audio_data, int bits_per_sample, int sample_rate, size_t number_of_channels, size_t number_of_frames) {
    size_t valueCount = number_of_channels * number_of_frames;
    int16_t *_data = (int16_t*)audio_data;

    f.write((char*)&_data, sizeof(int16_t) * valueCount);
    f.flush();
}

f es unofstream. Bits por muestra es 16frecuencia de muestreo es 16000canales es 1marcos es 160.

Pero cuando abro el archivo creado con la importación sin procesar de AudaCity (PCM de 16 bits firmado, little endian, mono, frecuencia de muestreo 16000) no obtengo audio significativo.

¿Cómo escribo correctamente esa fecha de audio sin formato?

Respuestas a la pregunta(2)

Su respuesta a la pregunta