AudioEqualizer

显示已弃用

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

Class.AudioEqualizer 调整音频流的频率内容。它提供一个 输入 端口和一个 输出 端口,可以通过 0> Class.Wire|Wires0> 连接到/从。 AudioEqualizer3> 有 3 个频率带的获得值

代码示例

An AudioEqualizer can be used to change the frequency content of audio streams. This can be done before emission, or after listening, and can be used to implement your own, custom RollOff logic! In this example, we use an AudioEqualizer to make an AudioPlayer's high frequencies more muffled as the AudioListener looks away from the AudioEmitter. We also reduce both the low and high frequencies as the listener gets further away.

Listener Equalization

local function wireUp(source: Instance, target: Instance) : Wire
local wire = Instance.new("Wire")
wire.Parent = target
wire.SourceInstance = source
wire.TargetInstance = target
return wire
end
local function getCFrameFrom(inst: Instance) : CFrame?
local parent = inst.Parent
if not parent then
return nil
elseif parent:IsA("Model") then
return parent.WorldPivot
elseif parent:IsA("BasePart") then
return parent.CFrame
elseif parent:IsA("Attachment") then
return parent.WorldCFrame
elseif parent:IsA("Camera") then
return parent.CFrame
else
return nil
end
end
local function rescale(value: number, oldRange: NumberRange, newRange: NumberRange) : number
local clamped = math.clamp(value, oldRange.Min, oldRange.Max)
local normalized = clamped - oldRange.Min / (oldRange.Max - oldRange.Min)
return normalized * (newRange.Max - newRange.Min) + newRange.Min
end
local assetPlayer = Instance.new("AudioPlayer")
assetPlayer.AssetId = "rbxassetid://142376088"
assetPlayer.Parent = workspace
local equalizer = Instance.new("AudioEqualizer")
equalizer.MidRange = NumberRange.new(400, 3000)
equalizer.Parent = workspace
local emitterPart = Instance.new("Part")
emitterPart.Anchored = true
emitterPart.Position = Vector3.new(0, 5, 0)
emitterPart.Parent = workspace
local emitter = Instance.new("AudioEmitter")
emitter.Parent = emitterPart
local listener = Instance.new("AudioListener")
listener.Parent = workspace.CurrentCamera
local output = Instance.new("AudioDeviceOutput")
output.Parent = workspace
wireUp(assetPlayer, equalizer)
wireUp(equalizer, emitter)
wireUp(listener, output)
assetPlayer.Looping = true
assetPlayer:Play()
while true do
local emitterFrame = getCFrameFrom(emitter)
local listenerFrame = getCFrameFrom(listener)
if emitterFrame and listenerFrame then
local towardEmitter = emitterFrame.Position - listenerFrame.Position
local look = towardEmitter.Unit:Dot(listenerFrame.LookVector) -- ranges from [-1, 1]
look = rescale(look, NumberRange.new(-1, 1), NumberRange.new(-20, 0))
local distance = math.max(towardEmitter.Magnitude, 1)
local rolloff = 1 / distance -- ranges from [0, 1]
rolloff = rescale(rolloff, NumberRange.new(0, 1), NumberRange.new(-10, 10))
equalizer.HighGain = look + rolloff
equalizer.LowGain = rolloff
end
task.wait()
end

概要

属性

  • 读取并联

    是否允许音频流通过此效果而不受影响。

  • 未复制
    Roblox 脚本安全性
    读取并联
  • 读取并联

    获得值,可应用到等化器中最高带宽的内容。

  • 读取并联

    获得值,可应用于等化器中最低带的频率内容。

  • 读取并联

    获得值,可应用于中频带的频率内容。

  • 读取并联

    带有 MidGain 的频率范围。

方法

属性

Bypass

读取并联

如果 true , 音频流量通过此效果不受影响。

Editor

未复制
Roblox 脚本安全性
读取并联

HighGain

读取并联

在数据表中获得值,以每分贝计量,应用到同调器中的最高频率内容。从 -80 到 10 之间。

LowGain

读取并联

在数据表中获得值,以每分贝计量,应用到同调器中的最低频率内容。从 -80 到 10 之间。

MidGain

读取并联

在数据表中获得值,以每分贝计量,并应用到中频带的中间带。从 -80 到 10 。

MidRange

读取并联

在她的谐振带中受到影响的频率范围在兆兆级别。 MidGain 的低值决定了低和中频之间的交叉频率。 Class.AudioEqualizer.MidGain 的高值决定了中频和高频之间的交叉频率。 两个频率范围的交叉频率都为 200 到 20,000。

方法

GetConnectedWires

Instances

返回连接到指定端置顶的 Wires 阵列。AudioEqualizer 有一个“输入”端口和一个“输出”端置顶。

参数

pin: string

返回

Instances

活动