协议
效果控制器
在 fuchsia.media.audio/effects_controller.fidl 中定义
UpdateEffect
向名为 effect_name
的音效发送 config
消息。如果服务器出于任何原因关闭 EffectsController
连接,则表示效果已重置,与之前的 UpdateEffect
消息关联的所有状态均已丢失。想要重新应用状态的客户端应通过重新连接并重新发送任何所需的 UpdateEffect
消息进行响应。如果客户端关闭连接,则不会丢失任何状态,但客户端也无法确定与先前消息关联的任何状态是否已丢失以及何时丢失。
如果消息被名为 effect_name
的效果接受,则返回成功(空响应)。
如果找到了名为 effect_name
的效果,但 config
消息遭到拒绝,则返回 UpdateEffectError.INVALID_CONFIG
。
如果找不到名为 effect_name
的效果,则返回 UpdateEffectError.NOT_FOUND
。
请求
名称 | 类型 |
---|---|
effect_name |
string[128]
|
config |
string
|
回复
名称 | 类型 |
---|---|
payload |
EffectsController_UpdateEffect_Result
|
增益控制
在 fuchsia.media.audio/gain_control.fidl 中定义
启用对音频增益的控制和监控。此接口通常是从其他接口断开的。例如,fuchsia.media.audio.Renderer
有一个 BindGainControl
方法,该方法会绑定到用于控制渲染程序增益的增益控件。
收益静音已更改
通知客户端当前增益/静音值的变化。
回复
名称 | 类型 |
---|---|
gain_db |
float32
|
muted |
bool
|
设置增益
设置增益(以分贝为单位)。
请求
名称 | 类型 |
---|---|
gain_db |
float32
|
通过 Ramp 设置增益
在指定的持续时间(以毫秒为单位)内,平滑地将增益从当前值更改为指定值。如果“duration_ns”为 0,增益会立即发生变化。否则,请仅在音频流运行时增益。
后续调用 SetGenerate 会取消任何进行中的或待处理的提升。
任何时候最多只能有 1 个有效坡道。任何进行中的或等待的坡道会替换为稍后对 SetGenerateWithRamp 的调用(即使时长为 0)。在这种情况下,增益将使用新的加/减速选项,在新的时长内直接从其最新的(梯度中间)值上升到新指定的值。
用法示例(使用以秒为单位的时间):
Time 0
SetRaiseWithRamp(MUTED_GAIN_DB
, 0, SCALE_LINEAR) // Ramp 1
SetRaiseWithRamp(0.0f, ZX_SEC
(4), SCALE_LINEAR) // Ramp 2
Time 3
PlayNoReply(kNoTimestamp, any_media_time)
Time 4
PauseNoReply(kNoTimestamp, any_media_time)
Time 4
PauseNoReply7, any_media_time)
Time 4
PauseNoReply7,any_media_time)
MUTED_GAIN_DB
时间 0:磨合 1 立即完成,将增益更改为 MUTED_GAIN_DB
。坡道 2 待处理,因为我们尚未在播放。
在时间 3 时,梯度 2 开始从 MUTED_GAIN_DB
渐增到 0 dB(缩放 0.0=>1.0)。
时间 4:磨合 2 暂停(剩余 3 秒)。每个 SCALE_LINEAR
的缩放比例约为 0.25。时间 7:梯度 2 从最新的值继续朝着目标前进。
时间 8:梯度 3 取代了 Ramp 2,并从当前刻度(约为 0.5)开始。
时间 9:梯度 3 完成;当前缩放值现在为 0.0 (MUTED_GAIN_DB
)。
请求
名称 | 类型 |
---|---|
gain_db |
float32
|
duration |
zx/Duration
|
rampType |
RampType
|
设置静音
设置静音值。调整和静音是完全独立的,尽管它们都会影响所应用的扩缩。
请求
名称 | 类型 |
---|---|
muted |
bool
|
音量控制
在 fuchsia.media.audio/volume_control.fidl 中定义
用于控制音量的协议。
OnVolumeMuteChanged
在音频元素的音量或静音状态发生变化时触发。
回复
名称 | 类型 |
---|---|
new_volume |
float32
|
new_muted |
bool
|
设置静音
设置是否将受控元素静音。静音与将音量设置为 0.0 不同;音量会在静音期间持续出现。如果静音前音量为 0.5,则音量将在取消静音后恢复为 0.5。
请求
名称 | 类型 |
---|---|
mute |
bool
|
设置音量
将音频元素的音量设置为 [0.0, 1.0] 中的指定值。如果提供的值超出 [0.0, 1.0],则该值在应用前会被限制。
请求
名称 | 类型 |
---|---|
volume |
float32
|
结构
EffectsController_UpdateEffect_Response
在 fuchsia.media.audio/effects_controller.fidl 中定义
<空>
枚举
RampType 严格
类型:uint16
在 fuchsia.media.audio/gain_control.fidl 中定义
枚举增益控制斜坡类型。
名称 | 值 | 说明 |
---|---|---|
比例线 |
1 |
振幅比例在整个斜坡持续时间内以固定速率变化。 |
UpdateEffectError 严格
类型:uint32
在 fuchsia.media.audio/effects_controller.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
配置无效 |
1 |
|
找不到 |
2 |
联合
EffectsController_UpdateEffect_Result 严格
在 fuchsia.media.audio/effects_controller.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
EffectsController_UpdateEffect_Response
|
|
2 |
err |
UpdateEffectError
|
常量
名称 | 值 | 类型 | 说明 |
---|---|---|---|
MAX_EFFECT_NAME_LENGTH |
128
|
uint32 |
|
MAX_GAIN_DB |
24
|
float32 |
允许的最大增益值。 |
MAX_VOLUME |
1
|
float32 |
表示最大音量的音量值。 |
MIN_VOLUME |
0
|
float32 |
表示无声的音量值。 |
MUTED_GAIN_DB |
-160
|
float32 |
制造沉默,收获价值。允许小于此值的增益值,但效果与此值相同。 |