audio.fade()没有打开

时间:2013-07-08 20:50:46

标签: lua corona

我正在开启声音开关,但是当我使用“audio.setVolume(0.0)”和“audio.setVolume(0.7)”时它可以工作,但是当我尝试使用“淡入淡出”时“fadeOut”功能它可以将声音关闭,就像我想要的那样,但是再也没有。

function onOFF(event)
    if event.phase == "began" then
        if  sound == 1 then
                sound = sound + 1 
                            audio.fadeOut({ channel=setVolume, time=500 } )
                switchoff()
        elseif  sound == 2 then
                sound = sound - 1
                audio.fade({ channel=setVolume, time=500, volume=0.7 } ) 
                switchon()
        end     
    end
end

我可以看到这个的原因,有什么帮助吗?


function switchon()
    screenGroup = self.view
    SwitchOff = display.newImage("soundISon.png")
    screenGroup:insert(SwitchOff)
    SwitchOff.x = 50; SwitchOff.y = 600
    transition.to( SwitchOff, { time=700, y=465, transition=easing.inOutExpo } )
    transition.to( SwitchOn, { time=500, y=500, transition=easing.inOutExpo } )
    SwitchOff:addEventListener("touch", onOFF)
end

1 个答案:

答案 0 :(得分:2)

淡出音量时,您正在改变频道的音量。此值是持久的,如果您想稍后再次使用该频道,则您有责任重置频道上的音量

您需要使用audio.setVolume()

再次设置频道的音量

<强>增加: audio.fadeOut() - 这会在指定的时间内停止播放声音,并在执行此操作时逐渐减小音量。音频将在时间结束时停止,频道将被释放。

所以我认为你需要再次播放声音,并在使用audio.fade()之前将音量设置为 0.0

function onOFF(event)
    if event.phase == "began" then
        if  sound == 1 then
                sound = sound + 1 
                audio.fadeOut({ channel=setVolume, time=500 } )
                switchoff()
        elseif  sound == 2 then
                sound = sound - 1

                audio.play( yourSound, {channel=setVolume, loops=-1}) -- Like this
                audio.setVolume( 0.0, { channel=setVolume } )
                audio.fade({ channel=setVolume, time=500, volume=0.7 } ) 
                switchon()
        end     
    end
end

Reference