AudioEffectStore
简介
AudioEffectStore 提供了一套完整的音效管理 API,包括变声效果、混响效果和耳返功能。
通过该类,主播可以在直播过程中实时调整自己的声音效果,提升直播体验。
重要:
使用 shared 单例获取 AudioEffectStore 实例。设置的音效在退出房间后会自动失效,下次进房需要重新设置。
说明:
音效状态更新通过 audioEffectState 发布者传递。订阅它以接收有关变声、混响和耳返状态的实时更新。
警告:
由于蓝牙耳机的硬件延迟非常高,在主播佩戴蓝牙耳机时无法开启耳返功能。请在用户界面上提示主播佩戴有线耳机。
功能特性
变声效果:支持多种变声特效,如熊孩子、小女孩、大叔等。
混响效果:支持多种混响特效,如KTV、小房间、大会堂等。
耳返功能:主播可在耳机中听到自己的声音,适用于唱歌场景。
音量控制:支持耳返音量的精细调节。
可订阅数据
AudioEffectState 的字段描述如下:
属性名 | 类型 | 描述 |
audioChangerType | 变声状态。 | |
audioReverbType | 混响状态。 | |
isEarMonitorOpened | ValueListenable<bool> | 耳返开启。 |
earMonitorVolume | ValueListenable<int> | 耳返音量,取值范围 0 - 100。
如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。 |
API 列表
函数名 | 描述 |
获取单例实例。 | |
设置变声效果。 | |
设置混响效果。 | |
开启/关闭耳返。 | |
设置耳返音量。 | |
重置为默认状态。 |
获取实例
shared
获取单例实例。
变声设置
setAudioChangerType
设置变声效果
void setAudioChangerType(AudioChangerType type);
通过该接口您可以设置人声的变声特效。
变声特效可以作用于人声之上,通过声学算法对人声进行二次处理,以获得与原始声音所不同的音色。
版本信息
从 3.5 版本开始支持。
调用时机
进入房间后,且需要使用变声效果时调用。
注意事项
说明:
设置的效果在退出房间后会自动失效,如果下次进房还需要对应特效,需要调用此接口再次进行设置。
参数说明
参数名 | 类型 | 是否必填 | 描述 |
type | 必填 | 变声效果类型。 |
混响设置
setAudioReverbType
设置混响效果
void setAudioReverbType(AudioReverbType type);
通过该接口您可以设置人声的混响效果。
混响特效可以作用于人声之上,通过声学算法对声音进行叠加处理,模拟出各种不同环境下的临场感受。
版本信息
从 3.5 版本开始支持。
调用时机
进入房间后,且需要使用混响效果时调用。
注意事项
说明:
设置的效果在退出房间后会自动失效,如果下次进房还需要对应特效,需要调用此接口再次进行设置。
参数说明
参数名 | 类型 | 是否必填 | 描述 |
type | 必填 | 混响效果类型。 |
耳返设置
setVoiceEarMonitorEnable
开启/关闭耳返
void setVoiceEarMonitorEnable(bool enable);
主播开启耳返后,可以在耳机里听到麦克风采集到的自己发出的声音,该特效适用于主播唱歌的应用场景中。
版本信息
从 3.5 版本开始支持。
适用场景
适用于主播唱歌场景,让主播能够实时听到自己的声音以便调整演唱效果。
调用时机
进入房间后,且主播佩戴有线耳机时调用。
注意事项
警告:
由于蓝牙耳机的硬件延迟非常高,所以在主播佩戴蓝牙耳机时无法开启此特效,请尽量在用户界面上提示主播佩戴有线耳机。
参数说明
参数名 | 类型 | 是否必填 | 描述 |
enable | bool | 必填 | 是否开启耳返。 |
setVoiceEarMonitorVolume
设置耳返音量
void setVoiceEarMonitorVolume(int volume);
通过该接口您可以设置耳返特效中声音的音量大小。
版本信息
从 3.5 版本开始支持。
调用时机
开启耳返功能后调用。
注意事项
说明:
如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。
参数说明
参数名 | 类型 | 是否必填 | 描述 |
volume | int | 必填 | 耳返音量。(取值范围:0 - 100(超过 100 可能导致爆音))(默认值:100)。 |
重置
reset
重置为默认状态
void reset();
将所有音效设置重置为默认值,包括关闭变声效果、关闭混响效果、关闭耳返并重置耳返音量。
版本信息
从 3.5 版本开始支持。
调用时机
需要恢复默认音效设置时调用,例如退出直播间前。
数据结构
AudioChangerType
变声效果类型。
枚举值 | 值 | 说明 |
none | 0 | 关闭特效。 |
child | 1 | 熊孩子。 |
littleGirl | 2 | 小女孩。 |
man | 3 | 大叔。 |
heavyMetal | 4 | 重金属。 |
cold | 5 | 感冒。 |
foreigner | 6 | 外语腔。 |
trappedBeast | 7 | 困兽。 |
fatso | 8 | 肥宅。 |
strongCurrent | 9 | 强电流。 |
heavyMachinery | 10 | 重机械。 |
ethereal | 11 | 空灵。 |
AudioReverbType
混响效果类型。
枚举值 | 值 | 说明 |
none | 0 | 关闭特效。 |
ktv | 1 | KTV。 |
smallRoom | 2 | 小房间。 |
auditorium | 3 | 大会堂。 |
deep | 4 | 低沉。 |
loud | 5 | 洪亮。 |
metallic | 6 | 金属声。 |
magnetic | 7 | 磁性。 |
AudioEffectState
AudioEffectStore 对外提供的音效相关状态数据。
属性 | 类型 | 说明 |
audioChangerType | 变声状态。 | |
audioReverbType | 混响状态。 | |
isEarMonitorOpened | ValueListenable<bool> | 耳返开启。 |
earMonitorVolume | ValueListenable<int> | 耳返音量,取值范围 0 - 100。
如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。 |
使用示例
// 获取单例实例final store = AudioEffectStore.shared;// 订阅状态变化store.audioEffectState.audioChangerType.addListener(() {print("当前变声效果: ${store.audioEffectState.audioChangerType.value}");});store.audioEffectState.audioReverbType.addListener(() {print("当前混响效果: ${store.audioEffectState.audioReverbType.value}");});// 设置变声效果store.setAudioChangerType(AudioChangerType.littleGirl);// 设置混响效果store.setAudioReverbType(AudioReverbType.ktv);// 开启耳返store.setVoiceEarMonitorEnable(true);store.setVoiceEarMonitorVolume(80);