Hello. I'm new to this and I've just been working on a simple app to teach myself and learn. Right now I'm stuck on an audio issue.
I only have one channel for the audio and it's all the noise coming out of the app. What I want to do is make it FADE to a pause on the press of a button. I want it to resume on the press of the same button. I know how to make the button and I have it made.
I've loaded the stream using audio.loadStream.
Is this enough info? Thanks.
Nathan
You can do something like this here. I'm not sure that fade has a listener that you can use to pause the music when the fade ends so I set a timer for 1 second also, so around the time it stops fading it pauses the music.
Then basically there's a switch (musicToggle) that will decide if the music is playing or not and when it's not it resumes the music and sets the volume back to 1.
I haven't tested the code, so I'm not sure it works but it should be enough to understand the idea.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| local musicToggle = true
local musicTrack = audio.loadStream("whatever.mp3")
local musicChannel = audio.play(musicTrack,{ channel=1 })
local function pauseMusic()
audio.pause(musicChannel)
end
local function toggleMusic(e)
if(e.phase == "ended") then
if(musicToggle) then
audio.fade({ channel = musicChannel, time = 1000, volume = 0 })
timer.performWithDelay(1000,pauseMusic,1)
else
audio.setVolume(1,{ channel = musicChannel })
audio.resume(musicChannel)
end
musicToggle = not musicToggle
end
end
local button = display.newRect(0,0,50,50)
button.x = 100
button.y = 100
button:addEventListener("touch",toggleMusic) |