Sound
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Ein Sound ist ein Objekt, das Sound emittiert.
2D- und 3D-Sound
Ein Sound, der in einem BasePart oder in einem Attachment platziert ist, wird seinen Ton von der
Ein Sound wird als "global" betrachtet, wenn er nicht an einem BasePart oder an einem Attachment ist. In diesem Fall spielt der Sound in der gesamten Ortauf der gleichen Lautstärke.
Code-Beispiele
local part = Instance.new("Part")
part.Anchored = true
part.Position = Vector3.new(0, 3, 0)
part.BrickColor = BrickColor.new("Bright red")
part.Name = "MusicBox"
part.Parent = workspace
-- create a sound
local sound = Instance.new("Sound", part)
sound.SoundId = "rbxassetid://9120386436"
sound.EmitterSize = 5 -- decrease the emitter size (for earlier volume drop off)
sound.Looped = true
sound.Parent = part
local clickDetector = Instance.new("ClickDetector")
clickDetector.Parent = part
-- toggle the sound playing / not playing
clickDetector.MouseClick:Connect(function()
if not sound.IsPlaying then
part.BrickColor = BrickColor.new("Bright green")
sound:Play()
else
part.BrickColor = BrickColor.new("Bright red")
sound:Stop()
end
end)
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://9120386436"
sound.Looped = true
sound.Parent = workspace
sound:Play()
Zusammenfassung
Eigenschaften
Diese Eigenschaft wird wahr sein, wenn das Sound aus Roblox-Servern geladen wurde und bereit ist zu spielen.
Diese einzige Lesigkeitseigenschaft wird zurückgegeben, wenn Sound nicht spielt.
Diese lesbare Eigenschaft wird zurückgegeben, wenn Sound spielt.
Eine Reihe, die einen gewünschten Loop-Start und Loop-End innerhalb der Sound.PlaybackRegion , in Sekunden.
Dies setzt, ob das Sound einmal abgespielt ist, wenn es fertig ist, oder nicht.
Wenn wahr, wird das Sound abgespielt, wenn es aus dem Spiel entfernt wird, indem es das Sound oder eines seiner Vorfahren anerbt, um nil zu sein.
Eine Zahl zwischen 0 und 1000, die anzeigt, wie laut das Sound derzeit Zurückabgespielt wird.
Ein Umkreis, der einen gewünschten Start (min) und Stopp (max) Zeit innerhalb der Sound.TimeLength , in Sekunden.
Wenn true , gibt diese Eigenschaft Ihrem Sound Zugriff auf die Sound.PlaybackRegion und 1> Class.Sound.LoopRegion1> Eigenschaften, die seine Wiedergabe genauer steuern können.
Bestimmt die Geschwindigkeit, mit der ein Sound spielt, mit höheren Werten, die den Sound schneller und mit einer höheren Tonhöhe spielen lassen.
Zeigt an, ob Sound derzeit abgespielt wird.
Die maximale Entfernung, in Studs, eines Clients-Listeners kann von der Sound\s -Quelle und immer noch gehört werden. Gilt nur für Sounds, die an einem Part oder Attachment (3D-Sounds) gebunden sind.
Die minimale Abstand, in Studs, bei der ein 3D Sound (direkter Nachkommen eines BasePart oder Attachment ) beginnt, abzunehmen (im Volumen), um zu verringern.
Steuert, wie die Lautstärke eines 3D- Sound (mit einem Elternteil an einem BasePart oder Attachment ) sich verhält, als die Distance zwischen dem Hörer und dem Elternteil des Sounds ändert.
Die SoundGroup , die mit diesem Sound verbunden ist, werden auf den Sound angewendet. Die Lautstärke und Soundeffekte, die auf diesen Sound group angewendet werden, werden auf den Sound übergehen. Ein Sound kann nur in einer Soundgruppe auf einmal sein.
Diese Eigenschaft ist die Inhalts-ID des Sounds, mit dem ein Sound Objekt verbunden ist. Sobald ein Sound auf Roblox hochgeladen wurde, kann die Inhalts-ID im URL des hochgeladenen Sounds gefunden werden.
Die Länge des Sound in Sekunden. Wenn der Sound nicht geladen ist, wird dieser Wert auf 0 gesetzt.
Zeigt den Fortschritt in Sekunden der Sound. Kann geändert werden, um die Wiedergabeinstellung des Sound sowohl vor als auch während des Wiedergabens zu ändern.
Die Lautstärke der Sound . Kann zwischen 0 und 10 eingestellt werden. Standard auf 0.5.
Methoden
Setzt Sound.Playing auf false. Dies unterbricht die Wiedergabe des Sound , wenn der Ton abgespielt wird. Als Sound.TimePosition wird nicht zurückgesetzt, wenn der 1> Class.Sound1> wieder aufgenommen wird, wird er von seiner früheren Position fortgesetzt.
Spielt die Sound. Setzt Sound.TimePosition auf das letzte von einem Script festgelegte Wert (oder 0, wenn es nicht festlegenwurde), und dann setzt 2>Class.Sound.Playing2> auf true.
Fährt die Sound fort. Setzt Sound.Playing auf true. Ändert Sound.TimePosition nicht und kann daher verwendet werden, um die Wiedergabe eines Sounds zu unterbrechen, der mit 2>Class.Sound:Pause2> aufgehört wird.
Stoppt die Sound. Setzt Sound.Playing auf false und setzt Sound.TimePosition auf 0.
Ereignisse
Ereignis, das jedes Mal ausgelöst wird, wenn die Sound Loopings ausgeführt werden. Gibt die Rückgabe von soundId und numOfTimesLooped aus, wodurch der InhaltID des Sounds und die Anzahl der Loopings jeweils zurückgegeben werden.
Feuert, wenn das Sound die Wiedergabe abgeschlossen hat und aufgehört hat.
Feuert ab, wenn die Sound geladen ist.
Feuert, wenn das Sound mit Sound:Pause() unterbrochen wird.
Feuert, wenn das Sound mit der Funktion Sound:Play() gespielt wird.
Feuert, wenn der Sound wieder mit Sound:Resume() aufgenommen wird.
Feuert, wenn die Sound aufgrund der Funktion Sound:Stop() aufgehalten wird.
Eigenschaften
ChannelCount
IsLoaded
Diese Eigenschaft wird wahr sein, wenn das Sound aus Roblox-Servern geladen wurde und bereit ist zu spielen.
In Roblox werden Audio-Dateien nicht in Spielen selbst gespeichert, sondern auf den Roblox-Servern gespeichert und durch die Sound.SoundId Eigenschaftenverknüpft. Dies bedeutet, dass sie vor dem Spiel heruntergeladen werden müssen, um wiedergegeben zu werden. Dies kann eine Weile dauern, abhängig von der Internetverbindung des Benutzers, der Länge des Sounds und der Anzahl der anderen Objekte, die geladen werden müssen.
Entwickler können die Sound.IsLoaded Eigenschaft und das Sound.Loaded -Ereignis verwenden, wenn sie überprüfen möchten, ob ein Sound vor dem Spielen geladen wurde.
Code-Beispiele
local sound = script.Parent.Sound
if not sound.IsLoaded then
sound.Loaded:Wait()
end
print("The sound has loaded!")
IsPaused
Diese einzige Eigenschaft wird zurückgegeben, wenn die Sound nicht spielt. Beachten Sie, dass diese Eigenschaft nicht nur wahr ist, wenn ein Sound mit der Sound:Pause() -Funktion aufgehalten wird, sondern auch, wenn er mit der Sound:Stop() -Funktion aufgehalten wird, oder nie wieder abgespielt wird.
Diese Eigenschaft ist nur wahr, wenn Sound.IsPlaying falsch ist.
Da der Sound ausgesetzt ist, kann er nicht verwendet werden, um den Sound zu stoppen, Sound:Stop() und Sound:Pause() sollten stattdessen verwendet werden.
Code-Beispiele
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://9120386436"
sound.Looped = true
sound.Parent = workspace
if not sound.isLoaded then
sound.Loaded:Wait()
end
sound:Play()
print(sound.IsPlaying, sound.IsPaused) -- true, false
task.wait(2)
sound:Pause()
print(sound.IsPlaying, sound.IsPaused) -- false, true
task.wait(2)
sound:Play()
print(sound.IsPlaying, sound.IsPaused) -- true, false
task.wait(2)
sound:Stop()
print(sound.IsPlaying, sound.IsPaused) -- false, true
IsPlaying
Diese lesbare Eigenschaft wird zurückgegeben, wenn Sound spielt.
Diese Eigenschaft kann nur wahr sein, wenn Sound.IsPaused falsch ist.
Da IsPlaying nur gelesen wird, kann es nicht verwendet werden, um den Ton abzuspielen, Sound:Play() sollte stattdessen verwendet werden.
Code-Beispiele
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://9120386436"
sound.Looped = true
sound.Parent = workspace
if not sound.isLoaded then
sound.Loaded:Wait()
end
sound:Play()
print(sound.IsPlaying, sound.IsPaused) -- true, false
task.wait(2)
sound:Pause()
print(sound.IsPlaying, sound.IsPaused) -- false, true
task.wait(2)
sound:Play()
print(sound.IsPlaying, sound.IsPaused) -- true, false
task.wait(2)
sound:Stop()
print(sound.IsPlaying, sound.IsPaused) -- false, true
LoopRegion
Eine Reihe, die einen gewünschten Loop-Start und Loop-End innerhalb der Sound-Sound.PlaybackRegion in Sekunden anzeigt.
Wenn LoopRegion.Min > PlaybackRegion.Min , der Loop von der LoopRegion.Min startet.
Wenn LoopRegion.Min < PlaybackRegion.Min , der Loop von der PlaybackRegion.Min startet.
Wenn LoopRegion.Max > PlaybackRegion.Max , der Loop beginnt bei PlaybackRegion.Max.
Wenn LoopRegion.Max < PlaybackRegion.Max , beginnt der Loop um genau um diese Zeit.
Wenn LoopRegion.Min``LoopRegion.Max , verwendet der Sound stattdessen die Eigenschaft 1> Class.Sound.PlaybackRegion1>.
Looped
Dies setzt, ob das Sound einmal abgespielt ist, wenn es fertig ist, oder nicht.
Looped-Sounds sind für eine Reihe von Anwendungen, einschließlich Musik und Hintergrund-Umgebungssounds, geeignet. Das Sound.DidLoop -Ereignis kann verwendet werden, um die Anzahl der Zeiten zu verfolgen, wie der Sound Class.Sound.DidLoopLooped wurde.
Code-Beispiele
local Players = game:GetService("Players")
local function onPlayerAdded(player)
local function onCharacterAdded(character)
-- wait for the head to be added
local head = character:WaitForChild("Head")
local sound = Instance.new("Sound")
sound.Name = "TestSound"
sound.SoundId = "rbxasset://sounds/uuhhh.mp3" -- oof
sound.Parent = head
sound.Looped = true
sound.DidLoop:Connect(function(_soundId, numOfTimesLooped)
print("oof! " .. tostring(numOfTimesLooped))
end)
sound:Play()
end
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)
local function loopNTimes(sound, numberOfLoops)
if not sound.IsPlaying then
sound.Looped = true
local connection = nil
connection = sound.DidLoop:Connect(function(_soundId, numOfTimesLooped)
print(numOfTimesLooped)
if numOfTimesLooped >= numberOfLoops then
-- disconnect the connection
connection:Disconnect()
-- stop the sound
sound:Stop()
end
end)
sound:Play()
end
end
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://0"
loopNTimes(sound, 5)
PlayOnRemove
Wenn wahr, wird das Sound abgespielt, wenn es aus dem Spiel entfernt wird.
Beachten Sie, dass der Sound abgespielt wird, wenn die Instance.Parent -Eigenschaft der Sound oder eines seiner Vorfahren auf null eingestellt ist. Dies bedeutet, dass alles, was folgt, den Sound abspielt, wenn PlayOnRemove wahr ist. Beachten Sie, dass dies Instance:Destroy() beinhaltet, da die Zerstörungsfunktion das Elternteil auf null setzt.
Sound: Zerstören Sie Sound.Parent = null Sound.Parent.Parent = null
Code-Beispiele
local sound = Instance.new("Sound")
sound.Name = "TestSound"
sound.SoundId = "rbxasset://sounds/uuhhh.mp3" -- oof
sound.Parent = workspace
sound.PlayOnRemove = true
task.wait(3)
sound:Destroy()
PlaybackLoudness
Eine Zahl zwischen 0 und 1000, die anzeigt, wie laut das Sound derzeit Zurückabgespielt wird.
Dieses Eigenschaften- reflektiert die Amplitude der Wiedergabe des Sounds im Falle der Zeit, in der es gelesen wird. Deshalb wird für die meisten Sounds es konstant fließen. Aufgrund dessen kann es im Roblox Studio-Eigenschaften-Fenster als 0 erscheinen, aber wenn es von Code in der Befehlsleiste oder Scripts gelesen wird, wird der richtige Wert zurückgegeben.
Code-Beispiele
-- to be placed in StarterPlayer > StarterPlayerScripts
local Players = game:GetService("Players")
-- wait for local player PlayerGui
local LocalPlayer = Players.LocalPlayer
local playerGui = LocalPlayer:WaitForChild("PlayerGui")
-- create a ScreenGui
local screenGui = Instance.new("ScreenGui")
screenGui.Parent = playerGui
-- create a holder for our bar
local frame = Instance.new("Frame")
frame.AnchorPoint = Vector2.new(0.5, 0.5)
frame.Position = UDim2.new(0.5, 0, 0.5, 0)
frame.Size = UDim2.new(0.3, 0, 0.05, 0)
frame.Parent = screenGui
-- create a bar
local bar = Instance.new("Frame")
bar.Position = UDim2.new(0, 0, 0, 0)
bar.Size = UDim2.new(1, 0, 1, 0)
bar.BackgroundColor3 = Color3.new(0, 1, 0)
bar.Parent = frame
-- create a sound
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://9120386436"
sound.Looped = true
sound.Parent = screenGui
sound:Play()
-- define a max loudness
local maxLoudness = 30
-- animate the amplitude bar
while true do
local amplitude = math.clamp(sound.PlaybackLoudness / maxLoudness, 0, 1)
bar.Size = UDim2.new(amplitude, 0, 1, 0)
wait(0.05)
end
PlaybackRegion
Ein Umkreis, der einen gewünschten Start (min) und Stopp (max) Zeit innerhalb der Sound.TimeLength , in Sekunden.
Wenn PlaybackRegion.Min > 0, beginnt der Sound ab der PlaybackRegion.Min-Zeit zu spielen.
Wenn PlaybackRegion.Min < 0, beginnt der Sound ab 0 zu spielen.
Wenn PlaybackRegion.Max > Sound.TimeLength , der Sound hört bei Sound.TimeLength auf.
Wenn PlaybackRegion.Max < Sound.TimeLength , der Sound hört auf genau um diese Zeit.
Wenn PlaybackRegion.Min == PlaybackRegion.Max, ist die PlayBackRegion inaktiv.
PlaybackRegionsEnabled
Wenn true , gibt diese Eigenschaft Ihrem Sound Zugriff auf die Sound.PlaybackRegion und 1> Class.Sound.LoopRegion1> Eigenschaften, die seine Wiedergabe genauer steuern können.
PlaybackSpeed
Bestimmt die Geschwindigkeit, mit der ein Sound spielenwird. Je höher der Wert, desto schneller spielt sich der Sound Zurück.
Zum Beispiel verursacht eine Wert von 2, dass der Sound 2x schneller wiedergibt, während ein Wert von 0,5 ihn 2x langsamer wiedergibt. Wenn PlaybackSpeed gleich ist 1, der Sound erfordert Sound.TimeLength (in Sekunden) für die Abwicklung.
Beachten Sie, dass die Erhöhung der Wiedergabeschwindigkeit eines Sounds dazu führen wird, dass er mit einer höheren Tonhöhe wiedergibt.
Code-Beispiele
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://9120386436"
sound.Looped = true
sound.Parent = workspace
sound:Play()
task.wait(10)
sound.PlaybackSpeed = 3 -- 3x faster
task.wait(5)
sound.PlaybackSpeed = 0.5 -- 2x slower
task.wait(5)
sound.PlaybackSpeed = 1 -- default
Playing
Zeigt an, ob Sound derzeit abgespielt wird. Dies kann umgeschaltet werden, und diese Eigenschaft wird immer repliziert.
In dem Studio-Editor sind Sounds nicht spielbar, da die Zeit angehalten ist. Wenn Sie Class.Sound.Playing auf wahr in der Bearbeitungsmodus einstellen, erledigt Class.Sound|Sounds nichts. jedoch können Sie Audio von innerhalb von Plugins abspielen, indem Sie das 4> Class.Sound|Sounds als Nachkommen eines7> Class.PluginGui7> festlegen.
Dieses Eigenschaft sollte nicht mit Sound.IsPlaying verwechselt werden, die eine nur lesbare Eigenschaftenist. Wenn Sie Playing auf true oder false setzen, kann das Spielen beginnen oder aufhören, den Sound abzuspielen.
Beachten Sie, dass wenn Playing auf false gesetzt ist, die Sound.TimePosition des Sounds nicht zurücksetzenwird. Dies bedeutet, dass wenn Playing erneut auf true gesetzt ist, dass das Audio von der Zeit position, in der es aufgehört wurde, fortgesetzt wird. Wenn die Funktion Sound:Play() jedoch verwendet wird, um die Position des Sounds wieder auf 0 zurückzusetzen, wird die Zeitposition jedoch zurückgesetzt.
Code-Beispiele
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://9120386436"
sound.Looped = true
sound.Parent = workspace
print("playing sound")
sound.Playing = true
task.wait(10)
print("stopping sound")
sound.Playing = false
task.wait(5)
sound.Playing = true
local timePosition = sound.TimePosition
print("resumed at time position: " .. tostring(timePosition)) -- c. 10 seconds
RollOffMaxDistance
Die maximale Entfernung, in Studs, eines Clients's Hörers kann von der Sound -Herkunft und immer noch gehört werden. Gilt nur für Sounds, die zu einem Part oder Attachment (3D-Sounds) übergeordnet sind.
Wie RollOffMaxDistance die Verblasstheit eines Sounds beeinflusst (Mannier, mit der er sich verblasst), ist abhängig von der Sound.RollOffMode Eigenschaften. Wenn RollOffMode auf einen umgekehrten Typ-Distanzmodell verwendet wird (Inverse oder InverseTapered), wirkt sich die RollOff
Wenn RollOffMode auf ein lineares Typ-Modell (Linear oder LinearSquared) eingestellt ist, wird der Sound zwischen Sound.EmitterSize und MaxDistance (mit dem Wiedergabevolumen auf null bei RollOffMaxDistance) attenuieren. Dies ist weniger realistisch, aber in einigen Fällen ermöglicht es, den Kern in einer intuitiveren Weise zu verarbeiten.
RollOffMinDistance
Die minimale Abstand, in Studs, bei der ein 3D Sound (direkter Nachkommen eines BasePart oder Attachment ) beginnt, abzunehmen (im Volumen), um zu verringern.
Klingen, die der BasePart oder Attachment sind, die Nachkommen der Workspace sind, werden als 3D-Klingen betrachtet und ihre Lautstärke basiert auf der Distanz zwischen der Position des Klanghörers des Cl
Die Art und Weise, wie sich die Sound nach der Distanz zwischen dem Hörer und dem Ton abschwächt (verblasst), bestimmt der RollOffMinDistance durch den RollOffMode.
RollOffMode
Dieses Eigenschaften legt fest, wie 3D Sounds attenuate (fade out) als die Distanz zwischen dem Hörer und dem Sound's Parent erhöht. Es kann auf einen der Werte des Enum.RollOffMode enemen gesetzt werden.
Der folgende Code wird RollOffMode in Linear setzen:
sound.RollOffMode = Enum.RollOffMode.Linear
Die verschiedenen Modi
Die folgenden Optionen sind verfügbar:
<tbody><tr><td>Umgekehrt</td><td>Die Lautstärke verringert sich von <code>Sound/RollOffMinDistance</code> umgekehrt.</td></tr><tr><td>Umgekehrt</td><td>Ein hybrides Modell. Folgt dem Inverse-Modell, wenn <code>RollOffMinDistance</code> und das Linear Square-Modell, wenn <code>Sound/RollOffMaxDistance</code> nah sind.</td></tr><tr><td>Linär</td><td>Die Lautstärke sinkt zwischen <code>RollOffMinDistance</code> und <code>Sound/RollOffMaxDistance</code> mit einem linearen Verhältnis.</td></tr><tr><td>LinearSquare</td><td>Die Lautstärke sinkt zwischen <code>RollOffMinDistance</code> und <code>Sound/RollOffMaxDistance</code> mit einem linearen quadratischen Verhältnis.</td></tr></tbody>
Modus | Beschreibung |
---|
Umkehr gegen lineare Entfernungskorrektur
Standardmäßig sind die Sounds so eingestellt, dass die Streichung der Sounds in der realen Welt umgekehrt ist (enum.rolloffmode.逆向) , was die Streichung der Sounds im wirklichen Welt begint. Unter der Streichung in umgekehrter Distanz beginnt die Rate der Streichung basierend auf der Größe des Emitters, da die Sounds mit größerer Emitter
RollOffMaxDistance wird nicht unter dem umgekehrten Modell wirken, aber die Wiedergabe wird sofort nach Erreichen dieser Distanz vollständig abgebrochen. Dies kann bei der Verwendung von niedrigen Werten für die maximale Distanz besonders scharf sein.
Die lineare Entfernung-Attenuierung funktioniert anders. Unter der linearen Entfernung-Attenuierung wird der Sound zwischen RollOffMinDistance und RollOffMaxDistance abgeschwächt, wodurch der Sound einmal MaxDistance erreicht ist, still wird lautlos. RollOffMinDistance zeigt immer noch den Punkt, an dem der Sound beginnen wird, abzunehmen. jedoch, die audible Lautstärke an
SoundGroup
Die SoundGroup, die mit diesem Sound verbunden ist, wird auf diesen Sound-Group SoundGroup.Volume und 2>Class.SoundEffect|SoundEffects2> angewendet. Ein Sound kann nur in einer Sound-Gruppe auf einmal sein.
SoundGroups werden verwendet, um die Lautstärke und Effekte mehrerer Sounds gleichzeitig zu verwalten. Ein Sound wird zu einem 0> Class.SoundGroup0> hinzugefügt, indem die Eigenschaft SoundGroup des Sounds festgelegt wird.
Code-Beispiele
local SoundService = game:GetService("SoundService")
-- create a sound group
local soundGroup = Instance.new("SoundGroup")
soundGroup.Parent = SoundService
-- create a sound
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://9120386436"
sound.Looped = true
sound.PlaybackSpeed = 2
sound.SoundGroup = soundGroup
sound.Parent = workspace
-- play the sound
sound:Play()
task.wait(10)
-- change the volume
soundGroup.Volume = 0.1
task.wait(3)
-- return the volume
soundGroup.Volume = 0.5
task.wait(4)
-- add a sound effect
local reverb = Instance.new("ReverbSoundEffect")
reverb.Parent = soundGroup
SoundId
Diese Eigenschaft ist die Inhalts-ID des Sounds, mit dem ein Sound Objekt verbunden ist. Sobald ein Sound auf Roblox hochgeladen wurde, kann die Inhalts-ID im URL des hochgeladenen Sounds gefunden werden.
Es ist wichtig zu beachten, dass die URL nicht die gleiche ist wie die Inhalts-ID. Es wird funktionieren, wenn es direkt in die SoundId-Eigenschaft eines Sound in Roblox Studio eingefügt wird, da Studio es automatisch korrigiert, aber wenn es von einem Script festgelegt wird, muss der richtige Inhalts-ID verwendet werden, indem die Zahl aus der URL verwendet wird. Zum Beispiel:
"https://www.roblox.com/catalog/9120386436" -- Web-URL (funktioniert nicht)"http://www.roblox.com/asset/?id=9120386436" -- Inhalt-ID (wird funktionieren)"rbxassetid://9120386436" -- Content ID (alternative version, will work)
Code-Beispiele
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://9120386436"
sound.Looped = true
sound.Parent = workspace
sound:Play()
TimeLength
Die Länge des Sound in Sekunden. Wenn der Sound nicht geladen ist, wird dieser Wert auf 0 gesetzt.
Diese Eigenschaft wird oft in Verbindung mit Sound.PlaybackSpeed verwendet, um die Geschwindigkeit eines Sounds anzupassen, damit er für eine bestimmte Dauer hält (siehe Beispiele). Wenn Sound.PlaybackSpeed gleich ist, dauert der Sound TimeLength-Sekunden, um abzuschließen.
Code-Beispiele
local function playForDuration(sound, duration)
if not sound.IsLoaded then
sound.Loaded:wait()
end
local speed = sound.TimeLength / duration
sound.PlaybackSpeed = speed
sound:Play()
end
local sound = script.Parent
playForDuration(sound, 5)
TimePosition
Zeigt den Fortschritt in Sekunden der Sound . Kann geändert werden, um die Wiedergabe位tion des Sounds zu ändern. Wenn der Sound bereits spielt, wird die Wiedergabe auf die angegebene Position geschnappt. Wenn er nicht spielt, beginnt die Wiedergabe der Sound auf der angegebenen Position, wenn der Sound als nächstes gespielt wird.
Wenn Sound gespielt wird, erhöht sich TimePosition in einem Tempo von Sound.PlaybackSpeed pro Sekunde. Sobald TimePosition Sound.TimeLength erreicht, stoppt der Sound, es sei denn, es ist 1> Class.Sound.Looped
Beachten Sie, dass das Festlegen von TimePosition an einen Wert größer als die Länge in einem geschleiften Track nicht dazu führen wird, um sich zu wickeln. Wenn dieses Verhalten gewünscht ist, sollte der Entwickler das gefolgte Profiletun.
wenn newPosition >= sound.TimeLength dann newPosition = newPosition - sound.TimeLength end sound.TimePosition = newPosition
Die Einstellung TimePosition auf einen Wert unter Null beeinflusst derzeit nicht das Wiedergabeverhalten, aber dieses Verhalten sollte nicht verlassen werden.
Code-Beispiele
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://9120386436"
sound.Parent = workspace
sound.TimePosition = 30
sound:Play()
task.wait(5)
sound.TimePosition = 100
task.wait(5)
sound.TimePosition = 0
Volume
Die Lautstärke der Sound . Kann zwischen 0 und 10 eingestellt werden. Standard auf 0.5
Beachten Sie, dass wenn der Sound ein Mitglied von einem SoundGroup ist, seine Wiedergabelautstärke (aber nicht die Eigenschaften) wird von der SoundGroup.Volume Eigenschaft dieses 2>Class.SoundGroup2>
Code-Beispiele
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://9120386436"
sound.Looped = true
sound.PlaybackSpeed = 2
sound.Parent = workspace
sound.Volume = 2
sound:Play()
task.wait(7)
sound.Volume = 0.2
Methoden
Pause
Setzt Sound.Playing auf false. Dies stoppt die Wiedergabe des Sound , wenn der Ton abgespielt wird. Im Gegensatz zu Sound:Stop() nicht zurückgesetzt 1> Class.Sound.TimePosition1>, was bedeutet, dass der Ton mit 4> 7>Class.Sound:Resume7> wieder aufgenommen
Der Einfluss der verschiedenen Soundfunktionen auf Sound.Playing und Sound.TimePosition ist unten gezeigt.
<tbody><tr><td>Klang:Spielen()</td><td>Wahr</td><td>Letter value set in Lua (Standard 0)</td></tr><tr><td>Sound:Pause()</td><td>Falsch</td><td>–</td></tr><tr><td>Sound: Wiederaufnahme()</td><td>Wahr</td><td>–</td></tr><tr><td>Sound:Stop()</td><td>Falsch</td><td>0</td></tr></tbody>
Funktion | Sound.Spielen | Sound. ZeitPosition |
---|
Rückgaben
Code-Beispiele
-- create a sound
local sound = Instance.new("Sound", game.Workspace)
sound.SoundId = "rbxassetid://9120386436"
if not sound.IsLoaded then
sound.Loaded:Wait()
end
-- listen for events
sound.Played:Connect(function(_soundId)
print("Sound.Played event")
end)
sound.Paused:Connect(function(_soundId)
print("Sound.Paused event")
end)
sound.Resumed:Connect(function(_soundId)
print("Sound.Resumed event")
end)
sound.Stopped:Connect(function(_soundId)
print("Sound.Stopped event")
end)
sound:Play()
print("play", sound.Playing, sound.TimePosition) -- play true 0
task.wait(10)
sound:Pause()
print("pause", sound.Playing, sound.TimePosition) -- pause false 10
task.wait(3)
sound:Resume()
print("play", sound.Playing, sound.TimePosition) -- play true 10
task.wait(3)
sound:Stop()
print("stop", sound.Playing, sound.TimePosition) -- stop false 0
task.wait(3)
sound:Play()
print("play", sound.Playing, sound.TimePosition) -- play true 0
Play
Spielt die Sound. Setzt Sound.TimePosition auf das letzte von einem Script festgelegte Wert (oder 0, wenn es nicht festlegenwurde), und dann setzt 2>Class.Sound.Playing2> auf true.
Der Einfluss der verschiedenen Sound-Funktionen auf Sound.Playing und Sound.TimePosition werden unten gezeigt.
<tbody><tr><td>Klang:Spielen()</td><td>Wahr</td><td>Letter value set in Lua (Standard 0)</td></tr><tr><td>Sound:Pause()</td><td>Falsch</td><td>–</td></tr><tr><td>Sound: Wiederaufnahme()</td><td>Wahr</td><td>–</td></tr><tr><td>Sound:Stop()</td><td>Falsch</td><td>0</td></tr></tbody>
Funktion | Sound.Spielen | Sound. ZeitPosition |
---|
Rückgaben
Code-Beispiele
-- create a sound
local sound = Instance.new("Sound", game.Workspace)
sound.SoundId = "rbxassetid://9120386436"
if not sound.IsLoaded then
sound.Loaded:Wait()
end
-- listen for events
sound.Played:Connect(function(_soundId)
print("Sound.Played event")
end)
sound.Paused:Connect(function(_soundId)
print("Sound.Paused event")
end)
sound.Resumed:Connect(function(_soundId)
print("Sound.Resumed event")
end)
sound.Stopped:Connect(function(_soundId)
print("Sound.Stopped event")
end)
sound:Play()
print("play", sound.Playing, sound.TimePosition) -- play true 0
task.wait(10)
sound:Pause()
print("pause", sound.Playing, sound.TimePosition) -- pause false 10
task.wait(3)
sound:Resume()
print("play", sound.Playing, sound.TimePosition) -- play true 10
task.wait(3)
sound:Stop()
print("stop", sound.Playing, sound.TimePosition) -- stop false 0
task.wait(3)
sound:Play()
print("play", sound.Playing, sound.TimePosition) -- play true 0
Resume
Fährt die Sound fort. Setzt Sound.Playing auf true. Ändert Sound.TimePosition nicht und kann daher verwendet werden, um die Wiedergabe eines Sounds zu unterbrechen, der mit 2>Class.Sound:Pause2> aufgehört wird.
Der Einfluss der verschiedenen Soundfunktionen auf Sound.Playing und Sound.TimePosition ist unten gezeigt.
<tbody><tr><td>Klang:Spielen()</td><td>Wahr</td><td>Letter value set in Lua (Standard 0)</td></tr><tr><td>Sound:Pause()</td><td>Falsch</td><td>–</td></tr><tr><td>Sound: Wiederaufnahme()</td><td>Wahr</td><td>–</td></tr><tr><td>Sound:Stop()</td><td>Falsch</td><td>0</td></tr></tbody>
Funktion | Sound.Spielen | Sound. ZeitPosition |
---|
Rückgaben
Code-Beispiele
-- create a sound
local sound = Instance.new("Sound", game.Workspace)
sound.SoundId = "rbxassetid://9120386436"
if not sound.IsLoaded then
sound.Loaded:Wait()
end
-- listen for events
sound.Played:Connect(function(_soundId)
print("Sound.Played event")
end)
sound.Paused:Connect(function(_soundId)
print("Sound.Paused event")
end)
sound.Resumed:Connect(function(_soundId)
print("Sound.Resumed event")
end)
sound.Stopped:Connect(function(_soundId)
print("Sound.Stopped event")
end)
sound:Play()
print("play", sound.Playing, sound.TimePosition) -- play true 0
task.wait(10)
sound:Pause()
print("pause", sound.Playing, sound.TimePosition) -- pause false 10
task.wait(3)
sound:Resume()
print("play", sound.Playing, sound.TimePosition) -- play true 10
task.wait(3)
sound:Stop()
print("stop", sound.Playing, sound.TimePosition) -- stop false 0
task.wait(3)
sound:Play()
print("play", sound.Playing, sound.TimePosition) -- play true 0
Stop
Stoppt die Sound. Setzt Sound.Playing auf false und setzt Sound.TimePosition auf 0.
Der Einfluss der verschiedenen Soundfunktionen auf Sound.Playing und Sound.TimePosition ist unten gezeigt.
<tbody><tr><td>Klang:Spielen()</td><td>Wahr</td><td>Letter value set in Lua (Standard 0)</td></tr><tr><td>Sound:Pause()</td><td>Falsch</td><td>–</td></tr><tr><td>Sound: Wiederaufnahme()</td><td>Wahr</td><td>–</td></tr><tr><td>Sound:Stop()</td><td>Falsch</td><td>0</td></tr></tbody>
Funktion | Sound.Spielen | Sound. ZeitPosition |
---|
Rückgaben
Code-Beispiele
-- create a sound
local sound = Instance.new("Sound", game.Workspace)
sound.SoundId = "rbxassetid://9120386436"
if not sound.IsLoaded then
sound.Loaded:Wait()
end
-- listen for events
sound.Played:Connect(function(_soundId)
print("Sound.Played event")
end)
sound.Paused:Connect(function(_soundId)
print("Sound.Paused event")
end)
sound.Resumed:Connect(function(_soundId)
print("Sound.Resumed event")
end)
sound.Stopped:Connect(function(_soundId)
print("Sound.Stopped event")
end)
sound:Play()
print("play", sound.Playing, sound.TimePosition) -- play true 0
task.wait(10)
sound:Pause()
print("pause", sound.Playing, sound.TimePosition) -- pause false 10
task.wait(3)
sound:Resume()
print("play", sound.Playing, sound.TimePosition) -- play true 10
task.wait(3)
sound:Stop()
print("stop", sound.Playing, sound.TimePosition) -- stop false 0
task.wait(3)
sound:Play()
print("play", sound.Playing, sound.TimePosition) -- play true 0
Ereignisse
DidLoop
Ereignis, das jedes Mal ausgelöst wird, wenn die Sound Loopings ausgeführt werden. Gibt die Rückgabe von soundId und numOfTimesLooped aus, wodurch der InhaltID des Sounds und die Anzahl der Loopings jeweils zurückgegeben werden.
Wenn der Sound-Zähler aufgehört wird, wird der durchgeführte Countdown auf 1 zurückgesetzt, was das nächste DidLoop-Ereignis auf 1 für numOfTimesLooped zurückgibt.
Parameter
Die Sound.SoundId des Sound , das läuft.
Code-Beispiele
local function loopNTimes(sound, numberOfLoops)
if not sound.IsPlaying then
sound.Looped = true
local connection = nil
connection = sound.DidLoop:Connect(function(_soundId, numOfTimesLooped)
print(numOfTimesLooped)
if numOfTimesLooped >= numberOfLoops then
-- disconnect the connection
connection:Disconnect()
-- stop the sound
sound:Stop()
end
end)
sound:Play()
end
end
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://0"
loopNTimes(sound, 5)
Ended
Feuert, wenn das Sound die Wiedergabe abgeschlossen hat und aufgehört hat. Beachten Sie, dass dieses Ereignis nicht für Sounds mit Sound.Looped auf sie aufgehört, wenn sie weiter spielen, nachdem sie ihr beendenerreicht haben.
Dieses Ereignis wird oft verwendet, um einen Ton zu zerstören, wenn er das Spielen abgeschlossen hat.
sound:Play()sound.Ended:Wait()sound:Destroy()
Dieses Ereignis wird nur ausgelöst, wenn der Ton sein beendenerreicht hat. Dies bedeutet, dass es auch nicht feuert, wenn der Ton vor dem Spielabschluss gestoppt wird, für diesen Zweck Sound.Stopped .
Parameter
Die Sound.SoundId des Sound , das beendet ist.
Loaded
Das Sound.Loaded-Ereignis wird ausgelöst, wenn die Sound geladen ist.
Beachten Sie, dass dieses Ereignis nur dann ausgeführt wird, wenn der Sound geladen ist. Dies bedeutet, wenn es zugehört wird, wenn der Sound bereits geladen ist, wird es nicht zurückgeben. Daher wird empfohlen, Sound.IsLoaded vor dem Verbinden mit diesem Ereignis zu überprüfen.
Parameter
Die Sound.SoundId des Sound , das geladen wurde.
Code-Beispiele
local sound = script.Parent.Sound
if not sound.IsLoaded then
sound.Loaded:Wait()
end
print("The sound has loaded!")
Paused
Feuert, wenn das Sound mit Sound:Pause() unterbrochen wird.
Wie bei Sound.Played , Sound.Resumed und Sound.Stopped nur die entsprechende Soundfunktion wird das Ereignis auslösen. Dies bedeutet, dass Pause nur feuert, wenn 1> Class.Sound:Pause()1> aufgerufen wird.
Parameter
Die Sound.SoundId des Sound , das暂停되었。
Code-Beispiele
-- create a sound
local sound = Instance.new("Sound", game.Workspace)
sound.SoundId = "rbxassetid://9120386436"
if not sound.IsLoaded then
sound.Loaded:Wait()
end
-- listen for events
sound.Played:Connect(function(_soundId)
print("Sound.Played event")
end)
sound.Paused:Connect(function(_soundId)
print("Sound.Paused event")
end)
sound.Resumed:Connect(function(_soundId)
print("Sound.Resumed event")
end)
sound.Stopped:Connect(function(_soundId)
print("Sound.Stopped event")
end)
sound:Play()
print("play", sound.Playing, sound.TimePosition) -- play true 0
task.wait(10)
sound:Pause()
print("pause", sound.Playing, sound.TimePosition) -- pause false 10
task.wait(3)
sound:Resume()
print("play", sound.Playing, sound.TimePosition) -- play true 10
task.wait(3)
sound:Stop()
print("stop", sound.Playing, sound.TimePosition) -- stop false 0
task.wait(3)
sound:Play()
print("play", sound.Playing, sound.TimePosition) -- play true 0
Played
Feuert, wenn das Sound mit der Funktion Sound:Play() gespielt wird.
Wie bei Sound.Stopped , Sound.Paused und Sound.Resumed nur die entsprechende Soundfunktion verursacht das Ereignis, dass Played nur feuert, wenn 1> Class.Sound:
Parameter
Die Sound.SoundId des Sound , das gespielt wurde.
Code-Beispiele
-- create a sound
local sound = Instance.new("Sound", game.Workspace)
sound.SoundId = "rbxassetid://9120386436"
if not sound.IsLoaded then
sound.Loaded:Wait()
end
-- listen for events
sound.Played:Connect(function(_soundId)
print("Sound.Played event")
end)
sound.Paused:Connect(function(_soundId)
print("Sound.Paused event")
end)
sound.Resumed:Connect(function(_soundId)
print("Sound.Resumed event")
end)
sound.Stopped:Connect(function(_soundId)
print("Sound.Stopped event")
end)
sound:Play()
print("play", sound.Playing, sound.TimePosition) -- play true 0
task.wait(10)
sound:Pause()
print("pause", sound.Playing, sound.TimePosition) -- pause false 10
task.wait(3)
sound:Resume()
print("play", sound.Playing, sound.TimePosition) -- play true 10
task.wait(3)
sound:Stop()
print("stop", sound.Playing, sound.TimePosition) -- stop false 0
task.wait(3)
sound:Play()
print("play", sound.Playing, sound.TimePosition) -- play true 0
Resumed
Feuert, wenn der Sound wieder mit Sound:Resume() aufgenommen wird.
Wie bei Sound.Played , Sound.Paused und Sound.Stopped nur die entsprechende Soundfunktion verursacht das Ereignis zu initiieren. Dies bedeutet, dass Resume nur feuert, wenn 1> Class.Sound:Resume()1> aufgerufen wird.
Parameter
Die Sound.SoundId des Sound wird wieder aufgenommen.
Code-Beispiele
-- create a sound
local sound = Instance.new("Sound", game.Workspace)
sound.SoundId = "rbxassetid://9120386436"
if not sound.IsLoaded then
sound.Loaded:Wait()
end
-- listen for events
sound.Played:Connect(function(_soundId)
print("Sound.Played event")
end)
sound.Paused:Connect(function(_soundId)
print("Sound.Paused event")
end)
sound.Resumed:Connect(function(_soundId)
print("Sound.Resumed event")
end)
sound.Stopped:Connect(function(_soundId)
print("Sound.Stopped event")
end)
sound:Play()
print("play", sound.Playing, sound.TimePosition) -- play true 0
task.wait(10)
sound:Pause()
print("pause", sound.Playing, sound.TimePosition) -- pause false 10
task.wait(3)
sound:Resume()
print("play", sound.Playing, sound.TimePosition) -- play true 10
task.wait(3)
sound:Stop()
print("stop", sound.Playing, sound.TimePosition) -- stop false 0
task.wait(3)
sound:Play()
print("play", sound.Playing, sound.TimePosition) -- play true 0
Stopped
Feuert, wenn die Sound aufgrund der Funktion Sound:Stop() aufgehalten wird.
Wie bei Sound.Played , Sound.Paused und Sound.Resumed nur die entsprechende Soundfunktion verursacht das Ereignis, dass das Spiel initiierenwird. Dies bedeutet, dass Stopped nur initiierenwird, wenn 1> Class.Sound:Stop()1> aufgerufen wird. Wenn ein Sound abgespielt
Parameter
Die Sound.SoundId des Sound , das aufgehört hat.
Code-Beispiele
-- create a sound
local sound = Instance.new("Sound", game.Workspace)
sound.SoundId = "rbxassetid://9120386436"
if not sound.IsLoaded then
sound.Loaded:Wait()
end
-- listen for events
sound.Played:Connect(function(_soundId)
print("Sound.Played event")
end)
sound.Paused:Connect(function(_soundId)
print("Sound.Paused event")
end)
sound.Resumed:Connect(function(_soundId)
print("Sound.Resumed event")
end)
sound.Stopped:Connect(function(_soundId)
print("Sound.Stopped event")
end)
sound:Play()
print("play", sound.Playing, sound.TimePosition) -- play true 0
task.wait(10)
sound:Pause()
print("pause", sound.Playing, sound.TimePosition) -- pause false 10
task.wait(3)
sound:Resume()
print("play", sound.Playing, sound.TimePosition) -- play true 10
task.wait(3)
sound:Stop()
print("stop", sound.Playing, sound.TimePosition) -- stop false 0
task.wait(3)
sound:Play()
print("play", sound.Playing, sound.TimePosition) -- play true 0