Ghi chú phát hành
Học
Lớp công cụ
AudioEqualizer

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.


Tóm Tắt
Sự Kiện
WiringChanged(connected: boolean,pin: string,wire: Wire,instance: Instance):RBXScriptSignal
Thành viên kế thừa
Mẫu mã
Cân Bằng Người Nghe
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) -- nằm trong khoảng [-1, 1]
look = rescale(look, NumberRange.new(-1, 1), NumberRange.new(-20, 0))
local distance = math.max(towardEmitter.Magnitude, 1)
local rolloff = 1 / distance -- nằm trong khoảng [0, 1]
rolloff = rescale(rolloff, NumberRange.new(0, 1), NumberRange.new(-10, 10))
equalizer.HighGain = look + rolloff
equalizer.LowGain = rolloff
end
task.wait()
end

Tài Liệu Tham Khảo API
Thuộc Tính
Bypass
Đọc Song Song
Các khả năng: Audio
AudioEqualizer.Bypass:boolean

HighGain
Đọc Song Song
Các khả năng: Audio
AudioEqualizer.HighGain:number

LowGain
Đọc Song Song
Các khả năng: Audio
AudioEqualizer.LowGain:number

MidGain
Đọc Song Song
Các khả năng: Audio
AudioEqualizer.MidGain:number

MidRange
Đọc Song Song
Các khả năng: Audio
AudioEqualizer.MidRange:NumberRange

Phương Pháp
GetConnectedWires
Các khả năng: Audio
AudioEqualizer:GetConnectedWires(pin:string):{Wire}
Tham Số
pin:string
Lợi Nhuận

GetInputPins
Các khả năng: Audio
AudioEqualizer:GetInputPins():{any}
Lợi Nhuận

GetOutputPins
Các khả năng: Audio
AudioEqualizer:GetOutputPins():{any}
Lợi Nhuận

Sự Kiện
WiringChanged
Các khả năng: Audio
AudioEqualizer.WiringChanged(
connected:boolean, pin:string, wire:Wire, instance:Instance
Tham Số
connected:boolean
pin:string
wire:Wire
instance:Instance

©2026 Roblox Corporation. Roblox, logo Roblox và Powering Imagination là các nhãn hiệu đã đăng ký và chưa đăng ký của chúng tôi tại Hoa Kỳ và các quốc gia khác.