AudioChannelSplitter

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

AudioChannelSplitter divide um stream de áudio em canais de componentes para que cada um possa ser processado de forma independente.Ele fornece um pino de entrada , um pino combinado de saída , bem como os seguintes pinos de saída secundária, todos os quais podem ser conectados a/de Wires : Esquerda , Direita , Centro , Roda da Esquerda , Roda da Direita , Sub , Fundo da Esquerda , Fundo da Direita , TopLeft , TopRight , TopBackLeft e TopBackRight .

Diagram showing position of all potential channels.

Amostras 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

Resumo

Propriedades

Métodos

Eventos

Propriedades

Ler Parallel

Controla o layout do canal de entrada a ser dividido.Quando alterado, todos os fluxos de áudio antes deste divisor de canais devem ser misturados (ampliados para pelo menos tantos canais quanto o input requer).

O pino Saída produz uma cópia do stream conectado ao Entrada mas, dependendo do valor de AudioChannelSplitter.Layout

  • Para Mono, o pino Centro produz um fluxo de áudio.
  • Para Stereo , os pinos Esquerda e Direita produzem streams de áudio.
  • Para Quad , o Esquerda , Direita , BackLeft e BackRight pinos produzem streams de áudio.
  • Surround_5 é o mesmo que Quad , mais Centro produz um fluxo de áudio.
  • Surround_5_1 é o mesmo que Surround_5 , mais Sub produz um stream de áudio.
  • Surround_7_1 é o mesmo que Surround_5_1 , mais SurroundLeft e SurroundRight produzem streams de áudio.
  • Para Surround_7_1_4 , todos os pinos de saída secundária produzem streams de áudio.

Métodos

GetConnectedWires

Instances

Retorna um array de Wires que estão conectados ao pino especificado.

Parâmetros

pin: string
Valor Padrão: ""

Devolução

Instances

GetInputPins

Retorna uma tabela que contém uma string, "Input" , indicando o pino de entrada disponível para Wire.TargetName .


Devolução

GetOutputPins

Retorna uma tabela de strings que indica quais pinos de saída estão disponíveis para Wire.SourceName :

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

Devolução

Eventos

WiringChanged

Evento que dispara depois que um Wire se conecta ou se desconecta, e que Wire está agora conectado ou foi previamente conectado a um pino no AudioChannelSplitter e a alguma outra instância viável.

Parâmetros

connected: boolean

Se a instância se conectou ou desconectou.

pin: string

O pino no AudioChannelSplitter que os alvos Wire alvo.

wire: Wire

O Wire entre a AudioChannelSplitter e a outra instância.

instance: Instance

A outra instância que está ou esteve conectada através do Wire .