阅读(2398)
赞(17)
鸿蒙OS 音量管理开发指导
2020-09-17 09:22:50 更新
场景介绍
音量管理的主要工作是音量调节,输入/输出设备管理,注册音频中断、音频采集中断的回调等。
接口说明
接口名 | 描述 |
---|---|
AudioManager() | 构造函数。 |
AudioManager(Context context) | 构造函数,由使用者指定应用上下文 Context。 |
AudioManager(String packageName) | 构造函数,由使用者指定包信息。 |
activateAudioInterrupt(AudioInterrupt interrupt) | 激活音频中断状态检测。 |
deactivateAudioInterrupt(AudioInterrupt interrupt) | 去激活音频中断状态检测。 |
getAudioParameter(String key) | 获取音频硬件中指定参数 keys 所对应的参数值。 |
AudioDeviceDescriptor[] getDevices(DeviceFlag flag) | 获取设备信息。 |
int getMaxVolume(AudioVolumeType volumeType) | 获取指定音频流音量最大档位。 |
int getMinVolume(AudioVolumeType volumeType) | 获取指定音频流音量最小档位。 |
int getRingerMode() | 获取铃声模式。 |
int getVersion() | 获取音频套件版本。 |
int getVolume(AudioVolumeType volumeType) | 获取指定音频流的音量档位。 |
boolean isDeviceActive(int deviceType) | 判断设备的开关状态。 |
boolean isMute(AudioVolumeType volumeType) | 特定的流是否处于静音状态。 |
boolean mute(AudioVolumeType volumeType) | 将特定流设置为静音状态。 |
boolean setAudioParameter(String key, String value) | 为音频硬件设置可变数量的参数值。 |
boolean setDeviceActive(int deviceType, boolean state) | 设置设备的开关状态。 |
boolean setRingerMode(AudioRingMode mode) | 设置铃声模式。 |
boolean setVolume(AudioVolumeType volumeType, int volume) | 设置特定流的音量档位。 |
boolean unmute(AudioVolumeType volumeType) | 将特定流设置为非静音状态。 |
boolean setMasterMute(boolean isMute) | 将主音频输出设备设置为静音或取消静音状态。 |
boolean setMicrophoneMute(boolean isMute) | 将麦克风设置为静音或取消静音状态。 |
boolean isMicrophoneMute() | 判断麦克风是否处于静音状态。 |
List<AudioCapturerConfig> getActiveCapturerConfigs() | 获取设备当前激活的音频采集任务的配置信息。 |
registerAudioCapturerCallback(AudioCapturerCallback cb) | 注册音频采集参数变更回调。 |
void unregisterAudioCapturerCallback(AudioCapturerCallback cb) | 去注册音频采集参数变更回调。 |
Uri getRingerUri(Context context, RingToneType type) | 获取指定铃声类型的Uri。 |
void setRingerUri(Context context, RingToneType type, Uri uri) | 设置指定铃声类型的 Uri。 |
AudioManager.CommunicationState getCommunicationState() | 获取当前的通话模式。 |
void setCommunicationState(AudioManager.CommunicationState communicationState) | 设置当前的通话模式。 |
boolean changeVolumeBy(AudioVolumeType volumeType, int index) | 将当前音量增加或减少一定量。 |
boolean connectBluetoothSco() | 连接到蓝牙 SCO 通道。 |
boolean disconnectBluetoothSco() | 断开与蓝牙 SCO 通道的连接。 |
java.util.List<AudioRendererInfo> getActiveRendererConfigs() | 获取有关活动音频流信息,包括使用类型、内容类型和标志。 |
static int getMasterOutputFrameCount() | 获取主输出设备缓冲区中的帧数。 |
static int getMasterOutputSampleRate() | 获取主输出设备的采样率。 |
boolean isMasterMute() | 检查音频流是否全局静音。 |
static boolean isStreamActive(AudioVolumeType volumeType) | 检查指定类型的音频流是否处于活动状态。 |
static int makeSessionId() | 创建一个会话 ID,AudioRendererInfo.Builder.sessionID(int)将使用该会话 ID 来设置音频播放参数,而AudioCapturerInfo.Builder.sessionID(int)将使用该会话 ID 来设置记录参数。 |
void registerAudioRendererCallback(AudioRendererCallback cb) | 注册音频播放参数变更回调。 |
void unregisterAudioRendererCallback(AudioRendererCallback cb) | 去注册音频播放参数变更回调。 |
开发步骤
音量管理提供的都是独立的功能,一般作为音频播放和音频采集的功能补充来使用。开发者根据具体使用场景选择方法即可。