2011-02-02 26 views
6

Hola me gustaría reproducir el audio al revés en Android. ¿Cómo lo logro? Cualquier puntero será apreciado. Gracias.Reproducción de audio hacia atrás

+0

¿Ha intentado hacer pasar una tasa de muestra negativa a AudioTrack.setPlaybackRate? :) – kusma

+0

@kusma, no lo he probado todavía. Te actualizaré sobre esto. –

+0

¿Qué hay de usar el código C y luego intentar compilarlo con Android? El código C/C++ le da acceso al archivo de audio como una matriz. – Sriram

Respuesta

4

probablemente no haya una funcionalidad en la API para esto.

Sin embargo, es bastante fácil reproducir datos de audio pcm al revés.

una demostración usando C++ estilo pseudo-código:

/* assuming 1 channel (mono), 16 bit LPCM */ 
const int16_t* const audioFileBuffer = audioFile.audioBuffer(); 

/* forward */ 
for (int idx = 0, sampleCount = audioFile.sampleCount(); idx < sampleCount; ++idx) { 
    outputBuffer[idx] = audioFileBuffer[idx]; 
} 

/* reverse */ 
for (int idx = 0, sampleCount = audioFile.sampleCount(), read = audioFile.sampleCount() - 1; idx < sampleCount; ++idx, --read) { 
    outputBuffer[idx] = audioFileBuffer[read]; 
} 
0

No estoy seguro de si hay una manera nativa de hacerlo (todavía soy nuevo en la escena de desarrollo de Android) pero si se llega a eso, siempre puedes tratar de decodificar el archivo en reversa en lugar de confiando en la API existente.