iOS: unidades de audio: ajuste de la frecuencia de muestreo arbitraria

¿Puedo establecer la frecuencia de muestreo que deseo? ¿Cuáles son las restricciones?

¿Qué hay de la tasa de muestreo de hardware? Y una vez que se establece, ¿cuál es la restricción en las tasas de muestreo internas que se pasan entre las unidades?

Supongo que la tasa de hardware real puede tener que ser un desplazamiento de bits de 44.1 KHz, y cualquier velocidad de muestreo interna debe ser un desplazamiento de bits descendente de este valor original (p. Ej., 22.1 KHz, 11.05 KHz). ¿Esto esta cerca?

Hasta donde yo entiendo,
1. Configuro la frecuencia de muestreo del hardware desde la session de audio.
2. El sistema establecerá una frecuencia de muestreo lo más cerca posible de la frecuencia de muestreo especificada.
3. Luego consulté la session de audio para la misma propiedad que establecí, lo que me dará la frecuencia de muestreo real que está usando

En el nivel de las unidades de audio, específicamente la unidad RemoteIO, la documentation establece que los dos puntos a los que la unidad se conecta al hardware (es decir, el scope de input del bus de micrófono (input) y el scope de salida del bus de altavoz (salida)) , la frecuencia de muestreo puede recuperarse pero no configurarse .

Sin embargo, bash acceder a este valor mientras construyo la unidad de E / S remota, y devuelve cero. Creo que tal vez necesito iniciar la unidad antes de que pueda get datos significativos de sus conexiones (el acto de iniciarlo probablemente cree las conexiones). Entonces, la solución aquí parece ser get la frecuencia de muestreo de la session de audio y usarla, según lo anterior.

NECESITA ETIQUETA: Unidad de audio

Estoy asumiendo que estás en iOS ya que mencionas AudioSessions. Entonces querrás:

  1. Verifique el hardware de input de audio. AudioSessionGetProperty (kAudioSessionProperty_AudioInputAvailable...)

  2. Establezca la session de audio en el modo "reproducir y grabar". AudioSessionSetProperty (kAudioSessionProperty_AudioCategory...) con kAudioSessionCategory_PlayAndRecord

  3. Activa la session. AudioSessionSetActive()

  4. Obtenga la frecuencia de muestreo preferida. AudioSessionGetProperty (kAudioSessionProperty_CurrentHardwareSampleRate)

Luego puede configurar su cadena de procesamiento de audio con la frecuencia de muestreo correcta.

En cuanto a la reproducción de audio, puede utilizar cualquier frecuencia de muestreo y la API debe convertirla a la frecuencia de muestreo de salida del hardware. Obviamente, si usa una frecuencia de muestreo muy alta, consumirá mucha memory y time de CPU.

    Intereting Posts