AudioChannelSplitter

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

AudioChannelSplitter teilt einen Audiostream in Komponentenkanäle auf, sodass jeder unabhängig verarbeitet werden kann.Es bietet eine Eingabe -Pin, eine kombinierte Ausgabe -Pin, sowie die folgenden sekundären Ausgabe-Pins, die alle von Wires : Links , Rechts , Zentrum , UmgebungLinks , UmgebungRechts , Sub , RückseiteLinks , RückseiteRechts , ObenLinks , ObenRechts , ObenLinks , und ObenRechts .

Diagram showing position of all potential channels.

Code-Beispiele

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

Zusammenfassung

Eigenschaften

Methoden

Ereignisse

Eigenschaften

Parallel lesen

Steuert das Eingangskanallayout, das aufgeteilt werden soll.Wenn sich etwas ändert, müssen alle Audiodatenströme vor der Eingabe dieses Kanalspalters möglicherweise gemischt werden (auf mindestens so viele Kanäle erweitert, wie die Eingabe erfordert).

Die Ausgabe -Pin erzeugt eine Kopie des Streams, der an Eingabe angeschlossen ist, aber abhängig vom Wert von AudioChannelSplitter.Layout

  • Für Mono produziert der Zentrum -Pin einen Audiostream.
  • Für Stereo produzieren die linken und rechten Pins Audioströme.
  • Für Quad , die Links , Rechts , BackLeft und BackRight Pins erzeugen Audio-Streams.
  • Surround_5 ist das gleiche wie Quad , plus Zentrum erzeugt einen Audiostream.
  • Surround_5_1 ist das gleiche wie Surround_5 , plus Sub erzeugt einen Audiostream.
  • Surround_7_1 ist das gleiche wie Surround_5_1 , plus SurroundLeft und SurroundRight produzieren Audio-Streams.
  • Für Surround_7_1_4 produzieren alle sekundären Ausgabe-Pins Audiodatenströme.

Methoden

GetConnectedWires

Instances

Gibt eine Reihe von Wires, die mit dem angegebenen Pin verbunden sind, zurück.

Parameter

pin: string
Standardwert: ""

Rückgaben

Instances

GetInputPins

Gibt eine Tabelle zurück, die eine Zeiche enthält, "Input" , die die Eingabepin für Wire.TargetName angibt, die verfügbar ist.


Rückgaben

GetOutputPins

Gibt eine Tabelle von Zeichen zurück, die anzeigt, welche Ausgabe-Pins verfügbar sind für Wire.SourceName :

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

Rückgaben

Ereignisse

WiringChanged

Ereignis, das nachdem abgefeuert wird, nachdem ein Wire verbunden oder getrennt wurde, und das Wire jetzt oder zuvor mit einem Pin auf der AudioChannelSplitter und mit einigen anderen verwendbaren Instanzen verbunden war.

Parameter

connected: boolean

Ob die Instanz verbunden oder getrennt wurde.

pin: string

Die Pins auf der AudioChannelSplitter, die die Wire Ziele sind.

wire: Wire

Die Wire zwischen der AudioChannelSplitter und der anderen Instanz.

instance: Instance

Die andere Instanz, die über die Wire verbunden ist oder war.