AudioChannelSplitter

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

AudioChannelSplitter แยกสตรีมเสียงเป็นช่องส่วนประกอบเพื่อให้แต่ละอันสามารถประมวลผลได้อย่างอิสระมันให้หนึ่ง อินพุต พิน, หนึ่งรวม ออก พิน, รวมทั้งพินออกประกอบต่อไปนี้, ซึ่งทั้งหมดสามารถเชื่อมต่อกับ/จากโดย : ซ้าย , ขวา , กลาง , รอบด้านซ้าย , รอบด้านขวา , ด้านล่างซ้าย , ด้านหลังซ้าย , ด้านหลังขวา , และ ด้านหลังขวา .

Diagram showing position of all potential 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
-- ส่งสิ่งที่ผู้ฟังได้ยินไปยังตัวแยกและส่งมิกซ์ไปยังเอาต์พุตสุดท้าย
wireUp(listener, splitter)
wireUp(mixer, output)
-- ตั้งค่าทั้งตัวแยกและตัวผสมเพื่อใช้เลย์เอาต์ quadrophonic
splitter.Layout = Enum.AudioChannelLayout.Quad
mixer.Layout = Enum.AudioChannelLayout.Quad
-- ให้แต่ละช่องสี่ช่องมีเปลี่ยนเสียงของตัวเอง
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")
-- กำหนดค่าส่วนให้เปิดเสียงออก
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)
-- เริ่มเล่นเสียง
assetPlayer:Play()
-- ปรับสีของชิ้นส่วนตามที่เล่นเสียง
while true do
local peak = math.sqrt(analyzer.PeakLevel)
part.Color = Color3.new(peak, peak, peak)
task.wait()
end

สรุป

คุณสมบัติ

  • อ่านพร้อมๆ กัน

    ควบคุมการจัดเรียงช่องอินพุตที่จะแยกออก

วิธีการ

เหตุการณ์

คุณสมบัติ

อ่านพร้อมๆ กัน

ควบคุมการจัดเรียงช่องอินพุตที่จะแยกออกเมื่อเปลี่ยนแปลงแล้ว สตรีมเสียงทั้งหมดก่อนที่จะแยกช่องสัญญาณนี้อาจต้องผสมขึ้น (ขยายเป็นอย่างน้อยเท่ากับช่องที่จำเป็นสำหรับการใส่)

พิน ออก ผลิตสำเนาของสตรีมที่เชื่อมต่อกับ อินพุต แต่ขึ้นอยู่กับค่าของ AudioChannelSplitter.Layout

  • สำหรับ Mono , พิน ศูนย์ ผลิตสตรีมเสียง
  • สำหรับ Stereo , พิน ซ้าย และ ขวา ผลิตสตรีมเสียง
  • สำหรับ Quad , ซ้าย , ขวา , BackLeft และ BackRight กุญแจผลิตสตรีมเสียง
  • Surround_5 เป็นเช่นเดียวกับ Quad บวกกับ ศูนย์ ผลิตสตรีมเสียง
  • Surround_5_1 เป็นเหมือนกับ Surround_5 บวกกับ ซับ ผลิตสตรีมเสียง
  • Surround_7_1 เป็นเช่นเดียวกับ Surround_5_1 บวกกับ SurroundLeft และ SurroundRight ผลิตสตรีมเสียง
  • สำหรับ Surround_7_1_4 ทั้งหมดของเข็มออกรองจะผลิตสตรีมเสียง

วิธีการ

GetConnectedWires

Instances

ส่งคืนคอลเลกชันของ Wires ที่เชื่อมต่อกับพินที่ระบุ

พารามิเตอร์

pin: string
ค่าเริ่มต้น: ""

ส่งค่ากลับ

Instances

GetInputPins

คืนตารางที่มีหนึ่งสตริง, "Input" , บ่งบอกถึงพินอินพุตที่มีอยู่สำหรับ Wire.TargetName


ส่งค่ากลับ

GetOutputPins

คืนตารางของสตริงที่ระบุว่าพินออกมีอยู่สำหรับ Wire.SourceName :

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

ส่งค่ากลับ

เหตุการณ์

WiringChanged

อีเวนต์ที่จะยิงหลังจากที่ Wire เชื่อมต่อหรือถูกตัดการเชื่อมต่อและ Wire ตอนนี้หรือเคยเชื่อมต่อกับพินบน AudioChannelSplitter และกับบางตัวอย่างอื่นที่สามารถเชื่อมต่อได้

พารามิเตอร์

connected: boolean

ว่าตัวอย่างได้เชื่อมต่อหรือถูกตัดการเชื่อมต่อ

pin: string

เข็มบน AudioChannelSplitter ที่เป้าหมาย Wire

wire: Wire

The Wire ระหว่าง AudioChannelSplitter และตัวอย่างอื่น

instance: Instance

ตัวอย่างอื่นที่เชื่อมต่อผ่าน Wire หรือไม่