2011-11-04 13 views
6

Disculpas de antemano por la notolencia de esta pregunta, esta es mi primera exploración del lado del audio de la programación de iOS.Conversión de la entrada de AVAudioRecorder al buffer de flotadores

Estoy usando la clase AVAudioRecorder para grabar la entrada a través del micrófono, utilizando el siguiente diccionario de configuración.

NSMutableDictionary *settings = [[NSMutableDictionary alloc] init]; 
[settings setValue:[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey]; 
[settings setValue:[NSNumber numberWithFloat:11025.0] forKey:AVSampleRateKey]; 
[settings setValue:[NSNumber numberWithInt: 1] forKey:AVNumberOfChannelsKey]; 
[settings setValue:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey]; 
[settings setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey]; 
[settings setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey]; 

Funciona absolutamente bien, sin embargo, el problema viene cuando intento utilizar la biblioteca Echonest-codegen para generar una huella digital para identificar la música que se reproduce en.

No se preocupe, si usted ha nunca utilizado antes, básicamente, tengo que ejecutar esta función:

Codegen * pCodegen = new Codegen(const float* pcm[], int number_of_samples, int samples_offset); 

Dónde const float * PCM [] es un buffer de muestras. Necesito convertir mi entrada a un "buffer de flotadores". Me han señalado los documentos de ExtAudioFile, pero no tienen mucho sentido. ¿Alguien podría señalarme en la dirección correcta? ¡Estoy completamente perdido!

¡Muchas gracias!

Respuesta

1

Usted puede conseguir fácilmente con muestra de audio Audio Queue Services El mayor problema que veo aquí es que son buffers de audio (creo) de tipo char * (byte), no sé por qué necesita flotar *

Cuestiones relacionadas