AudioChannelSplitter

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

AudioChannelSplitter divide un flujo de audio en canales componentes para que cada uno pueda procesarse de forma independiente.Proporciona un anclarde entrada , un anclarcombinado de salida , así como los siguientes pines de salida secundaria, todos los cuales se pueden conectar a/desde por : Izquierda , Derecha , Centro , Alrededor de la izquierda , Alrededor de la derecha , Sub , Izquierda trasera , Trasera derecha , Superior izquierda , Superior derecha , Superior izquierda trasera , y Superior derecha trasera .

Diagram showing position of all potential channels.

Muestras de código

Splitting & Mixing Channels

local Workspace = game:GetService("Workspace")
local function wireUp(source : Instance, target : Instance, sourceName : string?, targetName : string?)
local wire = Instance.new("Wire", source)
wire.SourceInstance = source
wire.TargetInstance = target
if sourceName then wire.SourceName = sourceName end
if targetName then wire.TargetName = targetName end
return wire
end
local listener = Instance.new("AudioListener")
listener.Parent = Workspace.CurrentCamera
local output = Instance.new("AudioDeviceOutput")
output.Parent = Workspace
local splitter = Instance.new("AudioChannelSplitter")
splitter.Parent = Workspace
local mixer = Instance.new("AudioChannelMixer")
mixer.Parent = Workspace
-- Send what the listener hears to a splitter and send a mix to the final output
wireUp(listener, splitter)
wireUp(mixer, output)
-- Set up both the splitter and mixer to use a quadrophonic layout
splitter.Layout = Enum.AudioChannelLayout.Quad
mixer.Layout = Enum.AudioChannelLayout.Quad
-- Give each of the four channels its own pitch shifter
local frontLeft = Instance.new("AudioPitchShifter")
frontLeft.Name = "Front Left"
frontLeft.Pitch = 1.25
frontLeft.Parent = Workspace
local backLeft = Instance.new("AudioPitchShifter")
backLeft.Name = "Back Left"
backLeft.Pitch = 0.5
backLeft.Parent = Workspace
local frontRight = Instance.new("AudioPitchShifter")
frontRight.Name = "Front Right"
frontRight.Pitch = 1.5
frontRight.Parent = Workspace
local backRight = Instance.new("AudioPitchShifter")
backRight.Name = "Back Right"
backRight.Pitch = 0.75
backRight.Parent = Workspace
wireUp(splitter, frontLeft, "Left")
wireUp(splitter, backLeft, "BackLeft")
wireUp(splitter, frontRight, "Right")
wireUp(splitter, backRight, "BackRight")
wireUp(frontLeft, mixer, nil, "Left")
wireUp(backLeft, mixer, nil, "BackLeft")
wireUp(frontRight, mixer, nil, "Right")
wireUp(backRight, mixer, nil, "BackRight")
-- Configure a part to emit audio
local part = Instance.new("Part")
part.Shape = Enum.PartType.Ball
part.Size = Vector3.new(4, 4, 4)
part.Material = Enum.Material.SmoothPlastic
part.CastShadow = false
part.Position = Vector3.new(0, 4, -12)
part.Anchored = true
part.Parent = Workspace
local analyzer = Instance.new("AudioAnalyzer")
analyzer.Parent = part
local emitter = Instance.new("AudioEmitter")
emitter.Parent = part
local assetPlayer = Instance.new("AudioPlayer")
assetPlayer.Looping = true
assetPlayer.Asset = "rbxassetid://97799489309320"
assetPlayer.Parent = emitter
wireUp(assetPlayer, emitter)
wireUp(assetPlayer, analyzer)
-- Start playing the audio
assetPlayer:Play()
-- Adjust the part's color as the audio plays
while true do
local peak = math.sqrt(analyzer.PeakLevel)
part.Color = Color3.new(peak, peak, peak)
task.wait()
end

Resumen

Propiedades

Métodos

Eventos

Propiedades

Leer paralelo

Controla el diseño del canal de entrada para dividirse.Cuando se cambia, todos los flujos de audio antes de la entrada de este divisor de canales pueden necesitar ser mezclados (ampliados a al menos tantos canales como la entrada requiera).

El puerto de salida produce una copia del flujo conectado a Entrada pero, dependiendo del valor de ):

  • Para Mono , el puerto Centro produce un flujo de audio.
  • Para Stereo , los pines Izquierda y Derecha producen flujos de audio.
  • Para Quad , el Izquierda , Derecha , BackLeft y BackRight pines producen flujos de audio.
  • Surround_5 es igual a Quad , más Centro produce un flujo de audio.
  • Surround_5_1 es igual que Surround_5 , más Sub produce un flujo de audio.
  • Surround_7_1 es igual que Surround_5_1 , más SurroundLeft y SurroundRight producen flujos de audio.
  • Para Surround_7_1_4 , todos los pines de salida secundaria producen flujos de audio.

Métodos

GetConnectedWires

Instances

Devuelve un array de Wires que están conectados al anclarespecificado.

Parámetros

pin: string
Valor predeterminado: ""

Devuelve

Instances

GetInputPins

Devuelve una tabla que contiene una cadena, "Input" , que indica el puerto de entrada disponible para Wire.TargetName .


Devuelve

GetOutputPins

Devuelve una tabla de cadenas que indican qué pines de salida están disponibles para Wire.SourceName :

  • "Output"
  • "Left"
  • "Right"
  • "Center"
  • "SurroundLeft"
  • "SurroundRight"
  • "BackLeft"
  • "BackRight"
  • "Sub"
  • "TopLeft"
  • "TopRight"
  • "TopBackLeft"
  • "TopBackRight"

Devuelve

Eventos

WiringChanged

Evento que se activa después de que un Wire se conecte o se desconecte, y que Wire ahora está conectado o fue previamente conectado a un puerto en el AudioChannelSplitter y a alguna otra instancia inalámbrica.

Parámetros

connected: boolean

Si la instancia se conectó o se desconectó.

pin: string

El puerto en el AudioChannelSplitter que los objetivos Wire apuntan.

wire: Wire

El Wire entre la AudioChannelSplitter y la otra instancia.

instance: Instance

La otra instancia que está o estaba conectada a través del Wire .