resumen temporal de audio

Cómo conectar audioflinger a hal

1 audio_hw_hal.cpp: audio_hw_device Este archivo da forma a audio_hw_device

2
struct legacy_audio_device { struct audio_hw_device device; proporcionado hacia arriba

struct AudioHardwareInterface *hwif;  向下提供

};

3 La función legacy_adev_open en el archivo audio_hw_hal.cpp contiene ladev-> hwif = createAudioHardware ();

4 El proceso de createAudioHardware
https://blog.csdn.net/syh63053767/article/details/9112153
Desde esta función, puede conectarse a la clase proporcionada por el fabricante (audiohardware)

5 Interfaz de entrada y salida adev_open_output_stream adev_open_input_stream
struct legacy_stream_out { struct audio_stream_out stream;

AudioStreamOut *legacy_out;

};

struct legacy_stream_in { struct audio_stream_in stream;

AudioStreamIn *legacy_in;

}; Las
dos interfaces anteriores también están conectadas a través de legacy_adev_open

6
Análisis del proceso de inicio de AudioPolicyService
a. Análisis de carga /vendor/etc/audio_policy.conf o /system/etc/audio_policy.conf
Para cada elemento de módulo en el archivo de configuración, nuevo HwModule (nombre), colóquelo en la matriz mHwModules
. Cada salida , nuevo IOProfile, puesto en los mOutputProfiles del módulo
Para cada entrada en el módulo, nuevo IOProfile, puesto en los mInputProfiles del módulo
b. Cargue el archivo so proporcionado por el fabricante de acuerdo con el nombre del módulo (cargado por AudioFlinger)
c. Abra el Salida correspondiente (salida abierta a través de AudioFlinger)

perfil: configuración, utilizado para describir la salida

a. 本可以支持哪些设备

b. 参数: 采样率,通道

resumen de audio de Android
https://www.jianshu.com/p/5389a9abe2b9

7
DeviceVector mAvailableOutputDevices; // todos los dispositivos de salida disponibles
DeviceVector mAvailableInputDevices; // todos los dispositivos de entrada disponibles dispositivos de
salida, use mAvailableOutputDevices para mantener, principalmente en relación con la conexión y desconexión. Los teléfonos, altavoces y otros dispositivos que vienen con los teléfonos móviles generalmente se procesan solo cuando se inician y no es necesario procesarlos en otros momentos. Entonces, lo principal es de lo que estamos hablando, auriculares Bluetooth, auriculares con cable, etc.
Documentos de referencia
Android Audio y auriculares, auriculares Bluetooth y otros periféricos de audio

8 Después de que
moutputs
analiza audio_policy.conf, recorra mHwModules [i] -> mOutputProfiles, y luego agréguelo a mOutputs.
Consulte el
análisis del proceso de selección del dispositivo de salida de audio Android (activado)

Supongo que te gusta

Origin blog.csdn.net/aningxiaoxixi/article/details/112455566
Recomendado
Clasificación