Search code examples
audiotimerluacoronasdkscene

Can I use an ended sound file to transition to a new scene or refresh data in the same scene?


Lua novice asks:
How do I transition from this... (a simple example to establish a how-to)...

visual = display.newImage( "redCircle.png", 50, 50 ) 

local music = audio.loadStream("sound1.mp3")
    audio.play(music)

audio.stopWithDelay(60000/60)

to this, timed by the first sound file ending?

visual = display.newImage( "blueCircle.png", 50, 50 ) 

local music = audio.loadStream("sound2.mp3")
audio.play(music)

audio.stopWithDelay(60000/60)

Which api should I be experimenting with? I've looked at https://docs.coronalabs.com/api/index.html What am I missing?


Solution

  • What you can do is create a function listener for the first audio file you can look more here: https://docs.coronalabs.com/api/library/audio/play.html Below is a sample code I can give you. Note that I did not use audio.stopWithDelay

    --DECLARE LOCAL VARIABLES
    local visual1
    local visual2
    local music1 
    local music2
    
    --LOAD SOUNDS
    music1 = audio.loadStream("sound1.mp3")
    music2 = audio.loadStream("sound2.mp3")
    
    local function soundIsFinished(event)
    
        if (event.completed) then
    
            --PLAY SECOND AUDIO AND HIDE/REMOVE VISUAL 1
            visual1.isVisible = false
            visual2.isVisible = true
            audio.play(music2, {duration = 1000})       
    
        end
    
    end
    
    --DISPLAY VISUAL1 and play MUSIC1
    visual1 = display.newImage("redCircle.png", 50,50)
    
    --AUDIO WILL PLAY FOR 1 SECOND (60000/60) is 1 second
    audio.play(music1, { duration=1000, onComplete=soundIsFinshed } )
    
    -- HIDE VISUAL2 FIRST
    visual2 = display.newImage("blueCircle.png", 50,50)
    visual2.isVisible = false
    

    Hope This helps.