Sound

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

A Sound jest obiektem, który emituje dźwięk.

Dźwięk 2D i 3D

Dźwięk umieszczony w BasePart lub Attachment emituje swój dźwięk z

Dźwięk jest uważany za „oglądany”, jeśli nie jest powiązany z BasePart lub Attachment. W tym przypadku dźwięk będzie odtwarzać się w tym samym wolumenie w całym miejsce.

Przykłady kodu

Music Playing Part

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)
Sound in the Workspace

local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://9120386436"
sound.Looped = true
sound.Parent = workspace
sound:Play()

Podsumowanie

Właściwości

  • Tylko do odczytu
    Bez replikacji
    Brak możliwości przeglądania
    Zabezpieczenia skryptów Roblox
    Odczyt równoległy
  • Tylko do odczytu
    Bez replikacji
    Odczyt równoległy

    Ta właściwość będzie prawdziwa, gdy Sound zostanie załadowany z serwerów Roblox i będzie gotowy do grać.

  • Ukryte
    Tylko do odczytu
    Bez replikacji
    Odczyt równoległy

    Ta własność tylko do czytania zwróci prawdę, gdy Sound nie gra.

  • Ukryte
    Tylko do odczytu
    Bez replikacji
    Odczyt równoległy

    Ta własność tylko do czytania zwróci prawdę, gdy Sound gra.

  • Odczyt równoległy

    Zakres określający pożądany początek i końcówek w Sound.PlaybackRegion , w sekundach.

  • Odczyt równoległy

    Ustawia, czy Sound powtarza się po zakończeniu gry, gdy gra się.

  • Odczyt równoległy

    Gdy prawda, Sound zagra, gdy zostanie usunięty z gry, poprzez zagnieżdżenie Sound lub jeden z jego ojców do nula.

  • Tylko do odczytu
    Bez replikacji
    Odczyt równoległy

    Liczba pomiędzy 0 i 1000 wskazująca, jak głośno odtwarza się Sound w tej wstecz.

  • Odczyt równoległy

    Zakres określający pożądany początek (min) i zatrzymanie (max) w ciągu Sound.TimeLength , w sekundach.

  • Odczyt równoległy

    Jeśli prawda , ta właściwość daje Ci dostęp do Class.Sound.PlaybackRegion i 2> Class.Sound.LoopRegion2> właściwości, które mogą lepiej kontrolować jego odtwarzanie.

  • Bez replikacji
    Odczyt równoległy

    Określa prędkość, w jakiej graćSound, z wyższymi wartościami powodującymi, że dźwięk gra szybciej i w wyższym tonie.

  • Bez replikacji
    Odczyt równoległy

    Wskazuje, czy Sound gra teraz.

  • Odczyt równoległy

    Maksymalna odległość, w studs, słuchawki klienta może być z źródła Sound\s i nadal słyszeć. Ma to zastosowanie tylko do dźwięków powiązanych z Part lub Attachment (dźwięki 3D).

  • Odczyt równoległy

    Maksymalna odległość, w studs, na którą zacznie korelować się 3D Sound (bezpośredni dzieciak Class.BasePart lub Class.Arrow) zacznie się zmniejszać ( zmniejszenie w objętości).

  • Odczyt równoległy

    Kontroluje, jak głośność 3D Sound (związana z BasePart lub Attachment ) zachowuje się jako dystans między zmianami dystansu między słuchającym a dźwiękiem.

  • Odczyt równoległy

    Class.SoundGroup, do którego jest związany ten Sound . Głośność i efekty dźwiękowe zastosowane do tej grupy dźwiękowej będą przekazywane do dźwięku. Dźwięk może być tylko w jednej grupie dźwiękowej na raz.

  • SoundId:ContentId
    Odczyt równoległy

    Ten parametr jest ID treści pliku dźwiękowego, z którym związany jest Sound obiekt. Po zesłaniu dźwięku na Roblox, ID treści można znaleźć w URL zesłanego dźwięku.

  • Tylko do odczytu
    Bez replikacji
    Odczyt równoległy

    Długość Sound w sekundach. Jeśli Sound nie zostanie załadowany, wartość ta będzie równa 0.

  • Bez replikacji
    Odczyt równoległy

    Pokazuje postęp w sekundach Sound . Można go zmienić, aby przenieść pozycję odtwarzania z Sound zarówno przed, jak i podczas odtwarzania.

  • Odczyt równoległy

    Głośność Sound można ustawić pomiędzy 0 i 10. Domyślnie ustawione na 0.5.

Metody

Zdarzenia

Właściwości

ChannelCount

Tylko do odczytu
Bez replikacji
Brak możliwości przeglądania
Zabezpieczenia skryptów Roblox
Odczyt równoległy

IsLoaded

Tylko do odczytu
Bez replikacji
Odczyt równoległy

Ta właściwość będzie prawdziwa, gdy Sound zostanie załadowany z serwerów Roblox i będzie gotowy do grać.

W Roblox, pliki audio nie są przechowywane w samych grach, ale są hostowane na serwerach Roblox i odniesionych przez właściwość Sound.SoundId. Oznacza to, że muszą być załadowane na urządzeniu klienta, zanim można je odtwarzać. To może chwilę zależeć w zależności od połączenia sieciowego użytkownika, długości dźwięku i lic

Rozwój może użyć właściwości Sound.IsLoaded i wydarzenia Sound.Loaded, jeśli chce sprawdzić, czy dźwięk został załadowany przed jego odtwarzaniem.

Przykłady kodu

Load Sound

local sound = script.Parent.Sound
if not sound.IsLoaded then
sound.Loaded:Wait()
end
print("The sound has loaded!")

IsPaused

Ukryte
Tylko do odczytu
Bez replikacji
Odczyt równoległy

Ta właściwość tylko czytelna zwróci prawdę, gdy Sound nie gra. Uwaga, że ta właściwość nie zwróci prawdziwe, tylko gdy dźwięk został tymczasowo wstrzymany używając funkcji Sound:Pause() lub nigdy nie zagrał.

Właściwość ta będzie działać tylko wtedy, gdy Sound.IsPlaying będzie fałszywy.

Pausa jest czytana tylko, więc nie może być używana do zatrzymania dźwięku, Sound:Stop() i Sound:Pause() powinny być używane zamiast tego.

Przykłady kodu

Sound IsPlaying and SoundIsPaused

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

Ukryte
Tylko do odczytu
Bez replikacji
Odczyt równoległy

Ta własność tylko do czytania zwróci prawdę, gdy Sound gra.

Ta właściwość może być prawdziwa tylko wtedy, gdy Sound.IsPaused jest fałszywy.

Ponieważ As IsPlaying jest tylko czytelny, nie można go używać do odtwarzania dźwięku, Sound:Play() należy zamiast tego używać.

Przykłady kodu

Sound IsPlaying and SoundIsPaused

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

Odczyt równoległy

Zakres określający pożądany początek i końcówek wewnątrz Sound.PlaybackRegion dźwięku w sekundach.

Looped

Odczyt równoległy

Ustawia, czy Sound powtarza się po zakończeniu gry, gdy gra się.

Pętli kształtujące się wokół dźwięków są odpowiednie dla zestawu aplikacji, w tym muzyki i otoczenia dźwiękowego. Wydarzenie Sound.DidLoop można użyć do śledzenia liczby czasów, w których dźwięk się pętli.

Przykłady kodu

Sound Looping

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)
Loop a Number of Times

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

Odczyt równoległy

Gdy prawda, Sound będzie grać, gdy zostanie usunięty z gry.

Uwaga na to, że dźwięk zostanie odtwarzany, gdy właściwość Instance.Parent lub jeden z jego ojców jest ustawiony na nil. Oznacza to, że wszystkie następujące powodują, że dźwięk zostanie odtwarzany, gdy PlayOnRemove jest prawdziwy. Uwaga, to obejmuje Sound jako funkcję usuwania ustawioną na nil.

dźwięk:Zniszcz dźwięk.Parent = nil dźwięk.Parent = nil

Przykłady kodu

Sound PlayOnRemove

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

Tylko do odczytu
Bez replikacji
Odczyt równoległy

Liczba pomiędzy 0 i 1000 wskazująca, jak głośno odtwarza się Sound w tej wstecz.

Ta właściwość odzwierciedla amplitudę odtwarzania dźwięku w przypadku, gdy zostanie przeczytane. Dlatego dla większości dźwięków będzie ona oscylować nieustannie. Z tego powodu może pojawić się w oknie właściwości Roblox Studio jako 0, ale gdy zostanie odczytana przez kod w pasku komend lub Scripts zwraca poprawną wartość.

Przykłady kodu

Volume Amplitude Bar

-- 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

Odczyt równoległy

Zakres określający pożądany początek (min) i zatrzymanie (max) w ciągu Sound.TimeLength , w sekundach.

  • Jeśli PlaybackRegion.Min > 0, dźwięk zaczyna się odtwarzać z czasu PlaybackRegion.Min.

  • Jeśli PlaybackRegion.Min < 0, dźwięk zaczyna się odtwarzać od 0.

  • Jeśli PlaybackRegion.Max > Sound.TimeLength , dźwięk kończy się na Sound.TimeLength .

  • Jeśli PlaybackRegion.Max < Sound.TimeLength , dźwięk zatrzymuje się w dokładnie w tym czasie.

  • Jeśli PlaybackRegion.Min == PlaybackRegion.Max, PlayBackRegion jest nieaktywne.

PlaybackRegionsEnabled

Odczyt równoległy

Jeśli prawda , ta właściwość daje Ci dostęp do Class.Sound.PlaybackRegion i 2> Class.Sound.LoopRegion2> właściwości, które mogą lepiej kontrolować jego odtwarzanie.

PlaybackSpeed

Bez replikacji
Odczyt równoległy

Określa prędkość, w jakiej gra Sound. Im większa wartość, tym szybciej dźwięk będzie grać.

Na przykład wartość 2 spowoduje, że Sound zagra 2x szybciej, podczas gdy wartość 0,5 spowoduje, że zagra 2x wolniej. Gdy PlaybackSpeed jest równy 1, dźwięk zajmie Sound.TimeLength (w sekundach) do ukończenia.

Uwaga, że zwiększając prędkość odtwarzania dźwięku, powoduje ona jego odtwarzanie na wyższym tonie.

Przykłady kodu

Sound PlaybackSpeed

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

Bez replikacji
Odczyt równoległy

Wskazuje, czy Sound gra teraz. Można to włączyć/wyłączyć, a ta właściwość zawsze się replikuje.

W edytorze studio, Sounds nie można odtwarzać, ponieważ czas jest zatrzymany. Ustawienie Sound.Playing na prawdziwe w trybie edytowania nie robi nic. Jnak, możesz odtwarzać audio z wnętrza pluginów, ustawiając Class.Sound|Sounds jako odziedzicznik

Ta właściwość nie powinna być mylona z Sound.IsPlaying , która jest własnością czytelną. Granie można ustawić na prawdziwy lub fałszywy, aby uruchomić lub zatrzymać odtwarzanie dźwięku.

Uwaga, że gdy Playing jest ustawiony na false, właściwość Sound.TimePosition dźwięku nie zostanie resetować. Oznacza to, że gdy Playing zostanie ustawiony ponownie na true, dźwięk będzie nadal odtwarzać z czasu pozycji, w której został zatrzymany. Jnak, jeśli funkcja Sound:Play() zostanie użyta do w

Przykłady kodu

Sound Playing

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

Odczyt równoległy

Maksymalna odległość, w studs, słuchacza może być z źródła Sound i nadal słyszeć. Ma to zastosowanie tylko do dźwięków powiązanych z Part lub Attachment (dźwięki 3D).

Jak RollOffMaxDistance wpływa na zmniejszenie dźwięku (sposób, w jaki zanika) jest zależny od właściwości Sound.RollOffMode. Gdy właściwość RollOffMode jest ustawiona na użycie modelu odwróconej odległości (Inverse lub InverseTapered) to RollOff

Gdy RollOffMode jest ustawiony na liniowy model dystansu (Linear lub LinearSquared), dźwięk będzie zaniknąć między Sound.EmitterSize i MaxDistance (z całą gamą dźwięku osiągającą zero w MaxDistance). To jest mniej realistyczne, ale w niektórych przypadkach umożliwia zaniknięcie w bardziej intuicyjny sposób.

RollOffMinDistance

Odczyt równoległy

Maksymalna odległość, w studs, na którą zacznie korelować się 3D Sound (bezpośredni dzieciak Class.BasePart lub Class.Arrow) zacznie się zmniejszać ( zmniejszenie w objętości).

Dźwięki powiązane z BasePart lub Attachment, które są potomstwami Workspace są uważane za dźwięki 3D i ich głośność zależy od dystansu między słuchacz

Sposób, w jaki Sound łaguje (nan) po tym, jak dystans między słuchającym a dźwiękiem przekroczy wartość RollOffMinDistance określoną przez RollOffMode.

RollOffMode

Odczyt równoległy

Ten właściwość ustawia, jak 3D Sounds atenuuje (nanie), gdy dystans między słuchającym a ojcem dźwięku zwiększa się. Można ustawić na jeden z wartości Enum.RollOffMode enum.

Poniższy kod ustawi RollOffMode na Linear:


sound.RollOffMode = Enum.RollOffMode.Linear

Różne tryby

Dostępne są następujące opcje:


<tbody>
<tr>
<td>Odwróć</td>
<td>Volume attenuates from <code>Dźwięk/RollOffMinDistance</code> in anverse manner.</td>
</tr>
<tr>
<td>Odwrócony</td>
<td>Model hybrydowy. Śledzi model Inverse, gdy jest blisko <code>RollOffMinDistance</code> i model Linear Square, gdy jest blisko <code>Sound/RollOffMaxDistance</code> .</td>
</tr>
<tr>
<td>Liniowy</td>
<td>Volume zmniejsza się między <code>RollOffMinDistance</code> i <code>Sound/RollOffMaxDistance</code> z linią liniową.</td>
</tr>
<tr>
<td>Liniowy Kwadrat</td>
<td>Volume zmniejsza się między <code>RollOffMinDistance</code> i <code>Sound/RollOffMaxDistance</code> z liniowym stosunkiem kwadratowym.</td>
</tr>
</tbody>
TrybOpis

Odwrócona odległość vs liniowy skorygowanie

Domyślnie dźwięki ustawione na użycie odwróconej dystrybucji dystansu (Enum.RollOffMode.Inverse), która odzwierciedla to, jak dźwięki znikają w rzeczywistym świecie. Pod odwróconą dystrybucją dystansu dźwięki zaczynają zanikać

RollOffMaxDistance nie będzie wpływał na zmniejszenie w zależności od modelu odwróconego, ale spowoduje, że dźwięk całkowicie się skróci, gdy ta dystans zostanie osiągnięta. To może być szczególnie gwałtownie, gdy używa się niskich wartości dla maksymalnej dystansu.

Odległość liniowa ma inny działanie. W odległości liniowej odległość odgrywa rolę w odległości między RollOffMinDistance i RollOffMaxDistance, co sprawia, że ​​dźwięk staje się milczeć, gdy MaxDistance osiągnięty. Odległość liniowa odległości odgrywa rolę w od

SoundGroup

Odczyt równoległy

Class.SoundGroup, który jest powiązany z tym Sound . SoundGroup.Volume i 1>Class.SoundGroup1> stosowanymi do tej grupy dźwiękowej, będzie przesyłany na dźwięk. Dźwięk może być tylko w jednej grupie dźwiękowej na raz.

SoundGroups służą do zarządzania głośnością i efektami wielu Sounds na raz. A Sound dodany do 0> Class.SoundGroup0> poprzez ustawienie właściwości SoundGroup dla dźwięku.

Przykłady kodu

SoundGroups

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

ContentId
Odczyt równoległy

Ten parametr jest ID treści pliku dźwiękowego, z którym związany jest Sound obiekt. Po zesłaniu dźwięku na Roblox, ID treści można znaleźć w URL zesłanego dźwięku.

Ważne jest, aby pamiętać, że URL nie jest taki sam jak ID treści. Będzie działać, gdy pastowany bezpośrednio do właściwości SoundId w Roblox studio, ponieważ Studio automatycznie go naprawi, ale jeśli jest ustawiony z Sound to poprawny identyfikator treści będzie musiał być używany, używając numeru z URL. Na przykład:


"https://www.roblox.com/catalog/9120386436" -- URL strony internetowej (nie będzie działał)
"http://www.roblox.com/asset/?id=9120386436" -- Identyfikator treści (zadziała)
"rbxassetid://9120386436" -- Content ID (alternative version, will work)

Przykłady kodu

Sound in the Workspace

local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://9120386436"
sound.Looped = true
sound.Parent = workspace
sound:Play()

TimeLength

Tylko do odczytu
Bez replikacji
Odczyt równoległy

Długość Sound w sekundach. Jeśli Sound nie zostanie załadowany, wartość ta będzie równa 0.

Ten parametr jest często używany wraz z Sound.PlaybackSpeed, aby dostosować prędkość dźwięku, aby trwała przez określony czas (patrz przykłady). Gdy Sound.PlaybackSpeed jest równy 1, dźwięk będzie trwać TimeLength sekund, aby go zakończyć.

Przykłady kodu

Play a Sound for a Specific Duration

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

Bez replikacji
Odczyt równoległy

Pokazuje postęp w sekundach Sound . Można go zmienić, aby przenieść pozycję odtwarzania dźwięku. Jeśli dźwięk już odtwarza, to odtwarzanie zatrzyma się na określonej pozycji. Jeśli nie odtwarza dźwięku, to odtwarzanie zacznie się na pozycji ustawionej, gdy następny dźwięk zostanie odtwarzony.

Gdy Sound gra, TimePosition zwiększa się o Sound.PlaybackSpeed na sekundę. Gdy TimePosition osiągnie Sound.TimeLength, Dźwięk przestanie być pętli, co oznacza, że ​​nie jest ustawiony na p

Uwaga, że ustawienie TimePosition na wartość większą niż długość w pętli toru nie powoduje, że się zakręci. Jeśli taki efekt jest pożądany, rozwój powinien wykonać obserwuje.

jeśli nowa pozycja >= dźwięku.TimeLength, to nowa pozycja = nowa pozycja - dźwięku.TimeLength końcowy dźwięk.PozycjaPosition = nowa pozycja

Ustawienie TimePosition na wartość mniejszą niż zero nie wpływa na odtwarzanie, ale to zachowanie nie powinno być wiarygodne.

Przykłady kodu

Sound TimePosition

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

Odczyt równoległy

Głośność Sound można ustawić pomiędzy 0 i 10. Domyślnie ustawione na 0.5

Uwaga, że jeśli Sound jest członkiem SoundGroup jego głośnicy (ale nie właściwość Głośnicy) będą wpływać przez właściwość SoundGroup.Volume tego 2>Class.SoundGroup</

Przykłady kodu

Sound Volume

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

Metody

Pause

void

Ustawia Sound.Playing na false. To wstrzyma odtwarzanie Sound jeśli dźwięk jest odtwarzany. Nie resetuje Sound:Stop() , co oznacza, że dźwięk może być wznowiony używając 1> Class.Sound.TimePosition1> , co oznacza, że dź

Impakt różnych funkcji dźwiękowych na Sound.Playing i Sound.TimePosition są pokazane poniżej.


<tbody>
<tr>
<td>Dźwięk:Graj()</td>
<td>Prawdziwy</td>
<td>Ostatni ustawiony wartości w Lua (domyślny 0)</td>
</tr>
<tr>
<td>Dźwięk:Zatrzymaj()</td>
<td>Fałszywy</td>
<td>-</td>
</tr>
<tr>
<td>Dźwięk: Zatrzymaj()</td>
<td>Prawdziwy</td>
<td>-</td>
</tr>
<tr>
<td>Dźwięk:Stop()</td>
<td>Fałszywy</td>
<td>0</td>
</tr>
</tbody>
FunkcjaDźwięk.GraDźwięk.Pozycja czasowa

Zwroty

void

Przykłady kodu

Sound Functions

-- 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

void

Odtwarza Sound . Ustawia Sound.TimePosition na ostatni ustawiony przez Script (lub 0, jeśli nie ustawiać), a następnie ustawia 1> Class.Sound.Playing1> na prawdziwy.

Wyrażenie różnicy funkcji Sound na Sound.Playing i Sound.TimePosition są pokazane poniżej.


<tbody>
<tr>
<td>Dźwięk:Graj()</td>
<td>Prawdziwy</td>
<td>Ostatni ustawiony wartości w Lua (domyślny 0)</td>
</tr>
<tr>
<td>Dźwięk:Zatrzymaj()</td>
<td>Fałszywy</td>
<td>-</td>
</tr>
<tr>
<td>Dźwięk: Zatrzymaj()</td>
<td>Prawdziwy</td>
<td>-</td>
</tr>
<tr>
<td>Dźwięk:Stop()</td>
<td>Fałszywy</td>
<td>0</td>
</tr>
</tbody>
FunkcjaDźwięk.GraDźwięk.Pozycja czasowa

Zwroty

void

Przykłady kodu

Sound Functions

-- 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

void

Podsumowuje Sound. Ustawia Sound.Playing na prawdziwy. Nie zmienia Sound.TimePosition i więc można go użyć do podsumowania odtwarzania przerwanego używając 2>Class.Sound:Pause()2>.

Impakt różnych funkcji dźwiękowych na Sound.Playing i Sound.TimePosition są pokazane poniżej.


<tbody>
<tr>
<td>Dźwięk:Graj()</td>
<td>Prawdziwy</td>
<td>Ostatni ustawiony wartości w Lua (domyślny 0)</td>
</tr>
<tr>
<td>Dźwięk:Zatrzymaj()</td>
<td>Fałszywy</td>
<td>-</td>
</tr>
<tr>
<td>Dźwięk: Zatrzymaj()</td>
<td>Prawdziwy</td>
<td>-</td>
</tr>
<tr>
<td>Dźwięk:Stop()</td>
<td>Fałszywy</td>
<td>0</td>
</tr>
</tbody>
FunkcjaDźwięk.GraDźwięk.Pozycja czasowa

Zwroty

void

Przykłady kodu

Sound Functions

-- 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

void

Zatrzymuje Sound. Ustawia Sound.Playing na fałszywy, a następnie ustawia Sound.TimePosition na 0.

Impakt różnych funkcji dźwiękowych na Sound.Playing i Sound.TimePosition są pokazane poniżej.


<tbody>
<tr>
<td>Dźwięk:Graj()</td>
<td>Prawdziwy</td>
<td>Ostatni ustawiony wartości w Lua (domyślny 0)</td>
</tr>
<tr>
<td>Dźwięk:Zatrzymaj()</td>
<td>Fałszywy</td>
<td>-</td>
</tr>
<tr>
<td>Dźwięk: Zatrzymaj()</td>
<td>Prawdziwy</td>
<td>-</td>
</tr>
<tr>
<td>Dźwięk:Stop()</td>
<td>Fałszywy</td>
<td>0</td>
</tr>
</tbody>
FunkcjaDźwięk.GraDźwięk.Pozycja czasowa

Zwroty

void

Przykłady kodu

Sound Functions

-- 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

Zdarzenia

DidLoop

Wydarzenie, które wysyłane jest za każdym razem, gdy Sound pętli. Wynika soundId i numOfTimesLooped, dając treści ID dźwięku i liczbę pętli połączonych odpowiednio.

Gdy Sound jest zatrzymany, zresetuje się licznik przeróconych znaczeń, co oznacza, że następne wydarzenie DidLoop zwróci 1 dla numOfTimesLooped.

Parametry

soundId: string

Class.Sound.SoundId z Sound , które zaciągnęły się.

numOfTimesLooped: number

Liczba czasów, w których Sound zaciągnęło się.


Przykłady kodu

Loop a Number of Times

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

Wystąpi, gdy Sound zakończy odtwarzanie i zatrzyma. Zauważ, że ten wydarzenie nie będzie działać dla dźwięków z ustawieniem Sound.Looped na prawdziwy, ponieważ odtwarzają one dalej po osiągnięciu kończyć.

Ten wątek jest często używany do usuwania dźwięku, gdy zakończy się odtwarzanie.


sound:Play()
sound.Ended:Wait()
sound:Destroy()

Ten wążdź tylko się włącza, jeśli dźwięk osiągnął swój kończyć. Oznacza to, że nie będzie on również działać, gdy dźwięk zostanie zatrzymany przed odtwarzaniem, dla tego użycia Sound.Stopped .

Parametry

soundId: string

Class.Sound.SoundId z Sound , który zakończył się.


Loaded

Wydarzenie Sound.Loaded zostanie uruchomione, gdy Sound zostanie załadowany.

Uwaga zdarzenie to będzie działać tylko w czasie ładowania dźwięku. Oznacza to, że jeśli jest słuchane w czasie, gdy dźwięk jest już załadowany, nie będzie ona powtarzać. Dlatego wskazane jest sprawdzenie Sound.IsLoaded przed połączeniem się z tym wydarzeniem.

Parametry

soundId: string

Class.Sound.SoundId z Sound załadowanego.


Przykłady kodu

Load Sound

local sound = script.Parent.Sound
if not sound.IsLoaded then
sound.Loaded:Wait()
end
print("The sound has loaded!")

Paused

Wyst?puje za ka?dym razem, gdy Sound jest zawieszone za pomoc? Sound:Pause().

Podobnie jak z Sound.Played , Sound.Resumed i Sound.Stopped tylko odpowiednia funkcja dźwiękowa powoduje, że wydarzenie się uruchomi. Oznacza to, że wstrzyma tylko wtedy, gdy 1> Class.Sound:Pause()1> jest wezwany.

Parametry

soundId: string

Class.Sound.SoundId z Sound , który został tymczasowo zawiesony.


Przykłady kodu

Sound Functions

-- 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

Wyst?puje za ka?dym razem, gdy Sound jest odtwarzany za pomoc? funkcji Sound:Play().

Podobnie jak z Sound.Stopped , Sound.Paused i Sound.Resumed tylko odpowiednia funkcja dźwiękowa powoduje, że wydarzenie się uruchomi. To oznacza,

Parametry

soundId: string

Class.Sound.SoundId z Sound , który został odtwarzony.


Przykłady kodu

Sound Functions

-- 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

Wyst?puje, gdy Sound jest wznowiony u?ytkowaniem Sound:Resume().

Podobnie jak z Sound.Played , Sound.Paused i Sound.Stopped tylko odpowiednia funkcja dźwiękowa spowoduje uruchomienie wydarzenia. Oznacza to, że Resume zostanie uruchomiony tylko wtedy, gdy 1> Class.Sound:Resume()1> zostanie wezwany.

Parametry

soundId: string

Class.Sound.SoundId z Sound zostaje wznowiony.


Przykłady kodu

Sound Functions

-- 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

Wyst?puje, gdy Sound jest zatrzymany z powodu funkcji Sound:Stop().

Podobnie jak z Sound.Played , Sound.Paused i Sound.Resumed tylko odpowiednia funkcja dźwiękowa powoduje, że wydarzenie się uruchomi. Oznacza to, że Zatrzymano będzie działać tylko wtedy, gdy 1> Class.Sound:Stop()1> z

Parametry

soundId: string

Class.Sound.SoundId z Sound , który się zatrzymał.


Przykłady kodu

Sound Functions

-- 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