Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How can I get my Sound ID player to pause on the first click?

Asked by 4 years ago

I have this sound ID Player that you type a sound ID into. there are two buttons, one that alternates from a play button and a pause button (depending on whether the song is playing or not), and a button to loop the song.

This first script is for the Sound ID's. when a sound ID is typed into the box and a player presses enter, the button which controls the playback switches it's image to a pause button.

local MusicIDBox = script.Parent.Parent.MusicIDBox
local PausePlayButton = script.Parent.Parent.Parent.Frame.PausePlayButton
local NowPlaying = script.Parent.Parent.Parent.Frame.NowPlaying
local Sound = game.workspace:WaitForChild("Sound")

local function changeSong(enterPressed)
    if enterPressed then
    Sound:Play()
    PausePlayButton.Image = "http://www.roblox.com/asset/?id=293466203"
    Sound.SoundId = "rbxassetid://"..MusicIDBox.Text
    end 
end

local function changeTitle(enterPressed)
    if enterPressed then
        NowPlaying.Text = "Now Playing: " .. game:GetService("MarketplaceService"):getProductInfo(tonumber(MusicIDBox.Text)).Name
    end 
end

MusicIDBox.FocusLost:Connect(changeSong)
MusicIDBox.FocusLost:Connect(changeTitle)

When I try to click on the pause button for the first time after entering a Sound ID, the song does not pause when I click on the button, and the buttons image does not change to a play button. But when I click it again, it functions normally.

local IsLooping = script.Parent.Parent.Parent.Frame.IsLooping
local PausePlayButton = script.Parent.Parent.Parent.Frame.PausePlayButton
local LoopButton = script.Parent.Parent.Parent.Frame.LoopButton
local Sound = game.workspace:WaitForChild("Sound")  
local Frame = script.Parent.Parent.Parent.Frame

local function playbackControl()
    if Sound.IsPlaying == true then
        Sound:Pause()
        PausePlayButton.Image = "http://www.roblox.com/asset/?id=293466205"
    else
        Sound:Play()
        PausePlayButton.Image = "http://www.roblox.com/asset/?id=293466203" 
    end
end

local function loopSong()
    if Sound.Looped == false then
        Sound.Looped = true
        IsLooping.Text = "Looping: ON"
    else if Sound.Looped == true then
        Sound.Looped = false
        IsLooping.Text = "Looping: OFF"
    end 
    end
end

-- pause button: = http://www.roblox.com/asset/?id=293466203
-- play button: http://www.roblox.com/asset/?id=293466205
-- stop button http://www.roblox.com/asset/?id=293466207
-- loop button http://www.roblox.com/asset/?id=588808350

PausePlayButton.MouseButton1Click:Connect(playbackControl)
LoopButton.MouseButton1Click:Connect(loopSong)
0
for line 8 try if Sound.Playing == true then also i normally find it safer to not connect functions but just to make a function straight like PausePlayButton.MouseButton1Click:connect(function() TNTIsLyfe 152 — 4y

Answer this question