自 2025 年 3 月 27 日起,我们建议您使用 android-latest-release
而非 aosp-main
构建 AOSP 并为其做出贡献。如需了解详情,请参阅 AOSP 的变更。
audio_hw_device 结构体参考文档
#include <
audio.h
>
|
struct
hw_device_t
|
常见
|
|
uint32_t(*
|
get_supported_devices
)(const struct
audio_hw_device
*dev)
|
|
int(*
|
init_check
)(const struct
audio_hw_device
*dev)
|
|
int(*
|
set_voice_volume
)(struct
audio_hw_device
*dev, float volume)
|
|
int(*
|
set_master_volume
)(struct
audio_hw_device
*dev, float volume)
|
|
int(*
|
get_master_volume
)(struct
audio_hw_device
*dev, float *volume)
|
|
int(*
|
set_mode
)(struct
audio_hw_device
*dev, audio_mode_t mode)
|
|
int(*
|
set_mic_mute
)(struct
audio_hw_device
*dev, bool state)
|
|
int(*
|
get_mic_mute
)(const struct
audio_hw_device
*dev, bool *state)
|
|
int(*
|
set_parameters
)(struct
audio_hw_device
*dev, const char *kv_pairs)
|
|
char *(*
|
get_parameters
)(const struct
audio_hw_device
*dev, const char *keys)
|
|
size_t(*
|
get_input_buffer_size
)(const struct
audio_hw_device
*dev, const struct audio_config *config)
|
|
int(*
|
open_output_stream
)(struct
audio_hw_device
*dev, audio_io_handle_t handle, audio_devices_t devices, audio_output_flags_t flags, struct audio_config *config, struct
audio_stream_out
**stream_out, const char *address)
|
|
void(*
|
close_output_stream
)(struct
audio_hw_device
*dev, struct
audio_stream_out
*stream_out)
|
|
int(*
|
open_input_stream
)(struct
audio_hw_device
*dev, audio_io_handle_t handle, audio_devices_t devices, struct audio_config *config, struct
audio_stream_in
**stream_in, audio_input_flags_t flags, const char *address, audio_source_t source)
|
|
void(*
|
close_input_stream
)(struct
audio_hw_device
*dev, struct
audio_stream_in
*stream_in)
|
|
int(*
|
dump
)(const struct
audio_hw_device
*dev, int fd)
|
|
int(*
|
set_master_mute
)(struct
audio_hw_device
*dev, bool mute)
|
|
int(*
|
get_master_mute
)(struct
audio_hw_device
*dev, bool *mute)
|
|
int(*
|
create_audio_patch
)(struct
audio_hw_device
*dev, unsigned int num_sources, const struct audio_port_config *sources, unsigned int num_sinks, const struct audio_port_config *sinks, audio_patch_handle_t *handle)
|
|
int(*
|
release_audio_patch
)(struct
audio_hw_device
*dev, audio_patch_handle_t handle)
|
|
int(*
|
get_audio_port
)(struct
audio_hw_device
*dev, struct audio_port *port)
|
|
int(*
|
set_audio_port_config
)(struct
audio_hw_device
*dev, const struct audio_port_config *config)
|
|
定义位于文件
audio.h 的
第 620 行。
定义位于文件
audio.h 的
第 607 行。
int(* create_audio_patch)(struct
audio_hw_device
*dev, unsigned int num_sources, const struct audio_port_config *sources, unsigned int num_sinks, const struct audio_port_config *sinks, audio_patch_handle_t *handle)
|
路由控制
定义位于文件
audio.h 的第 648 行。
int(* get_audio_port)(struct
audio_hw_device
*dev, struct audio_port *port)
|
定义位于文件
audio.h 的
第 665 行。
size_t(* get_input_buffer_size)(const struct
audio_hw_device
*dev, const struct audio_config *config)
|
定义位于文件
audio.h 的
第 588 行。
获取 HAL 的当前主静音状态(如果 HAL 支持主静音控制)。服务启动时,AudioFlinger 会从主要音频 HAL 查询此值,并使用该值在所有 HAL 中设置初始主音量静音。不支持此方法的 HAL 可能会将其设置为 NULL。
定义位于文件
audio.h 的
第 639 行。
获取 HAL 的当前主音量值(如果 HAL 支持主音量控制)。服务启动时,AudioFlinger 会从主要音频 HAL 查询此值,并使用该值来设置所有 HAL 的初始主音量。不支持此方法的 HAL 可能会将其设置为 NULL。
定义位于文件
audio.h 的
第 561 行。
定义位于文件
audio.h 的
第 572 行。
char*(* get_parameters)(const struct
audio_hw_device
*dev, const char *keys)
|
定义位于文件
audio.h 的
第 581 行。
由音频 flinger 用于枚举每个
audio_hw_device
实现支持的设备。
返回值是 1 个或多个 audio_devices_t 值的位掩码
注意:从 AUDIO_DEVICE_API_VERSION_2_0 开始,音频 HAL 实现不会实现此函数。所有受支持的设备都应列在 audio_policy.conf 文件中,并且音频政策管理器必须根据此文件中的信息选择适当的音频模块。
定义位于文件
audio.h 的
第 536 行。
检查音频硬件接口是否已初始化。成功时返回 0,失败时返回 -ENODEV。
定义位于文件
audio.h 的
第 542 行。
int(* open_input_stream)(struct
audio_hw_device
*dev, audio_io_handle_t handle, audio_devices_t devices, struct audio_config *config, struct
audio_stream_in
**stream_in, audio_input_flags_t flags, const char *address, audio_source_t source)
|
此方法会创建并打开音频硬件输入流
定义位于文件
audio.h 的
第 611 行。
int(* open_output_stream)(struct
audio_hw_device
*dev, audio_io_handle_t handle, audio_devices_t devices, audio_output_flags_t flags, struct audio_config *config, struct
audio_stream_out
**stream_out, const char *address)
|
此方法会创建并打开音频硬件输出流。“address”参数可根据需要限定“devices”音频设备类型。格式取决于设备类型:
-
蓝牙设备使用格式为“00:11:22:AA:BB:CC”的设备 MAC 地址
-
USB 设备使用 ALSA 卡和设备编号,格式为“card=X;device=Y”
-
其他设备可以使用数字或任何其他字符串。
定义位于文件
audio.h 的
第 599 行。
int(* release_audio_patch)(struct
audio_hw_device
*dev, audio_patch_handle_t handle)
|
定义位于文件
audio.h 的
第 656 行。
int(* set_audio_port_config)(struct
audio_hw_device
*dev, const struct audio_port_config *config)
|
定义位于文件
audio.h 的
第 669 行。
设置所有音频 activity 的音频静音状态。如果返回的值为 0 以外的任何值,软件混音器将模拟此功能。
定义位于文件
audio.h 的
第 630 行。
为语音通话以外的所有音频活动设置音量。介于 0.0 到 1.0 之间。如果返回的值为 0 以外的任何值,软件混音器将模拟此功能。
定义位于文件
audio.h 的
第 552 行。
定义位于文件
audio.h 的
第 571 行。
当音频模式发生变化时,系统会调用 set_mode。AUDIO_MODE_NORMAL 模式适用于标准音频播放,AUDIO_MODE_RINGTONE 适用于响铃播放,AUDIO_MODE_IN_CALL 适用于通话进行时。
定义位于文件
audio.h 的
第 568 行。
设置语音通话的音量。范围介于 0.0 到 1.0 之间
定义位于文件
audio.h 的
第 545 行。
此结构体的文档是根据以下文件生成的:
-
hardware/libhardware/include/hardware/
audio.h
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-03-26。
[null,null,["最后更新时间 (UTC):2025-03-26。"],[],[]]