背景
因为Android涉及到很多场景的音频流以及不同的音频输入输出设备,所以不可避免地要将不同场景的音频流路由到各式各样的音频设备中去。在以下的介绍中,均以 Android14 版本进行介绍。
Native层中的设备定义
enum {
// 常见输出设备
...
AUDIO_DEVICE_OUT_EARPIECE = 0x1u, //听筒
AUDIO_DEVICE_OUT_SPEAKER = 0x2u, //扬声器
AUDIO_DEVICE_OUT_WIRED_HEADSET = 0x4u, //线控耳机
AUDIO_DEVICE_OUT_WIRED_HEADPHONE = 0x8u, //普通有线耳机
AUDIO_DEVICE_OUT_BLUETOOTH_SCO = 0x10u, //单声道蓝牙耳机
AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET = 0x20u, //车载免提蓝牙设备
AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT = 0x40u, //立体声蓝牙耳机
AUDIO_DEVICE_OUT_BLUETOOTH_A2DP = 0x80u,
AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES = 0x100u,
AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER = 0x200u,
...
// 常见输入设备
AUDIO_DEVICE_IN_COMMUNICATION = 0x80000001u, // BIT_IN | 0x1
AUDIO_DEVICE_IN_AMBIENT = 0x80000002u, // BIT_IN | 0x2
AUDIO_DEVICE_IN_BUILTIN_MIC = 0x80000004u, // BIT_IN | 0x4
AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET = 0x80000008u, // BIT_IN | 0x8
AUDIO_DEVICE_IN_WIRED_HEADSET = 0x80000010u, // BIT_IN | 0x10
...
};

浙公网安备 33010602011771号