Necesito transmitir datos de PCM generados en tiempo de ejecución. Así que tengo un hilo con un bucleAudioTrack en modo de transmisión MODE_STREAMING
public void run() {
while(...) {
mAudioTrack.write(getPCM(), ...);
}
}
Lamentablemente esto no funciona. Parece que no depende del tamaño del búfer de AudioTrack. Yo quiero que sea muy pequeño para simular el comportamiento del tipo de baja latencia (150 ms) para que el usuario de forma dinámica puede cambiar el PCM recogido por getPCM()
int bufferSize = 0.150 * sampleRate * channels * bitsPerSample/8;
Sin embargo, he tratado de aumentar el tamaño del búfer hasta 100k sin resultado
no saben lo que quiere decir. No puedo escuchar nada – Raffaele
Este código funciona en dos dispositivos (aunque ambos Samsung). Revisa tus registros de LogCat, debería imprimir todos los detalles sobre 'AudioTrack'. – inazaruk
Claro, tuve que agregar una llamada para comenzar() sobre la creación de la actividad. Entonces es un misterio que no funciona con datos PCM reales. Ahora voy a probar con un sonido A 440Hz generado por la máquina – Raffaele