0

我正在研究声音开关,但是当我使用“audio.setVolume(0.0)”和“audio.setVolume(0.7)”时它可以工作,但是当我尝试使用“fade”和“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
4

1 回答 1

2

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

您需要使用再次设置通道的音量audio.setVolume()

加法: audio.fadeOut() - 这会在指定的时间内停止播放声音,并在播放时淡入最小音量。音频将在时间结束时停止,通道将被释放。

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

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

参考

于 2013-07-09T00:55:34.580 回答