Audio help

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)
views:1332 update:2011/12/30 9:10:41
corona forums © 2003-2011