AudioChannelMixer

Veraltete anzeigen

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

AudioChannelMixer mischt mehrere Audio-Streams in einen einzigen, mehrkanaligen Stream.Es bietet eine kombinierte Eingabe -Pin, eine Ausgabe -Pin, sowie die folgenden sekundären Eingangs-Pins, die alle von Wires : Links , Rechts , Zentrum , Umgebung links , Umgebung rechts , Sub , Rückseite links , Rückseite rechts , Oberseite links , Oberseite rechts , Oberseite links hinten und Oberseite rechts hinten .

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 Ausgabekanallayout, das gemischt werden soll.Die Eingangs -Pin von AudioChannelMixer wird immer "so wie sie ist" an Ausgabe weitergeleitet, aber abhängig vom Wert von Layout:

  • Für Mono , konsumiert der Zentrum -Pin Audiodaten.
  • Für Stereo verbrauchen die linken und rechten Pins Audio-Streams.
  • Für Quad , die Links , Rechts , BackLeft und BackRight Pins verbrauchen Audiodaten.
  • Surround_5 ist das gleiche wie Quad , plus Zentrum verbraucht einen Audiostream.
  • Surround_5_1 ist das gleiche wie Surround_5 , plus Sub verbraucht einen Audiostream.
  • Surround_7_1 ist das gleiche wie Surround_5_1 , plus SurroundLeft und SurroundRight verbrauchen Audio-Streams.
  • Für Surround_7_1_4 verbrauchen alle sekundären Eingangspins Audiodaten.

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 von Zeichen zurück, die anzeigt, welche Eingabepins für Wire.TargetName verfügbar sind:

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

Rückgaben

GetOutputPins

Gibt eine Tabelle zurück, die eine Zeiche enthält, "Output" , die die verfügbare Ausgabe-Pin für Wire.SourceName anzeigt.


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 AudioChannelMixer und mit einigen anderen verwendbaren Instanzen verbunden war.

Parameter

connected: boolean

Ob die Instanz verbunden oder getrennt wurde.

pin: string

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

wire: Wire

Die Wire zwischen der AudioChannelMixer und der anderen Instanz.

instance: Instance

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