Estoy jugando con el proyecto de ejemplo de Apple "LoadPresetDemo". He agregado la unidad de audio de reverberación AudioUnit kAudioUnitSubType_Reverb2
al gráfico, que es la única reverb de iOS disponible. En el archivo de cabecera CoreAudio "AudioUnitParameters.h", se afirma que REVERB2 debe responder a estos parámetros:Core Audio (iOS 5.1) Las propiedades de Reverb2 no existen, código de error -10877
enum {
// Global, CrossFade, 0->100, 100
kReverb2Param_DryWetMix = 0,
// Global, Decibels, -20->20, 0
kReverb2Param_Gain = 1,
// Global, Secs, 0.0001->1.0, 0.008
kReverb2Param_MinDelayTime = 2,
// Global, Secs, 0.0001->1.0, 0.050
kReverb2Param_MaxDelayTime = 3,
// Global, Secs, 0.001->20.0, 1.0
kReverb2Param_DecayTimeAt0Hz = 4,
// Global, Secs, 0.001->20.0, 0.5
kReverb2Param_DecayTimeAtNyquist = 5,
// Global, Integer, 1->1000
kReverb2Param_RandomizeReflections = 6,
};
Después de la AUGraph se ha inicializado y comenzó, todo se compila, escucho el sonido.
A continuación, modificar el parámetro kReverb2Param_DryWetMix (cambiando a la mezcla húmeda completa):
AudioUnitSetParameter(_reverbUnit, kAudioUnitScope_Global, 0, kReverb2Param_DryWetMix, 100.0f, 0);
Todo bien, oigo el sonido de reverberación con plena mixta mojado.
Ahora escuche es donde me encuentro con problemas. Cuando intento alterar cualquier parámetro que no sea kReverb2Param_DryWetMix
obtengo el código de error -10877
. Parece que estos otros parámetros enumerados en el archivo de encabezado no existen realmente.
Por ejemplo, llamar
AudioUnitSetParameter(_reverbUnit, kAudioUnitScope_Global, 0, kReverb2Param_DecayTimeAtNyquist, 20.0f, 0)
tira el error -10877
.
¿Esto es un error? ¿He omitido algún marco de audio? ¿No importé cabezales de audio específicos?
Los marcos de audio actuales incluidos son AVFoundation y AudioToolbox. Las importaciones de audio actuales son
#import <AudioToolbox/AudioToolbox.h>
#import <AVFoundation/AVFoundation.h>
#import <CoreAudio/CoreAudioTypes.h>
He fregado Google sin solución. Sé que tengo problemas cuando la ruta de Google falla. Cualquier ayuda sería muy apreciada.
Nota: Probé con el simulador y el dispositivo iPhone 4S, el mismo problema.
ACTUALIZACIÓN: He tratado
AudioUnitGetParameter(_reverbUnit, kReverb2Param_DecayTimeAtNyquist, kAudioUnitScope_Global, 0, &value)
y se devuelve un valor de 0.500000
, lo que significa que la propiedad existe. Entonces, ¿qué estoy haciendo mal al establecer el valor?
Eche un vistazo a AUComponent.h. Parece que -10877 es kAudioUnitErr_InvalidElement "El elemento especificado no es válido". Buscar en Google la constante de error arroja algunos resultados, p. http://lists.apple.com/archives/coreaudio-api/2002/Sep/msg00470.html –
Gracias por dónde localizar el código de error, me costaba encontrar qué encabezado tenía los códigos. Esto me ayudó a rastrear lo que hice mal. – Gobot
me alegra que lo hayas conseguido. ¡No olvides aceptar tu respuesta! :-) –