audio.fade() 没有开启。

我正在设计一个声音的开关,但当我使用“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
点赞
用户1605727
用户1605727

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

您需要使用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}) -- 就像这样
                audio.setVolume( 0.0, { channel=setVolume } )
                audio.fade({ channel=setVolume, time=500, volume=0.7 } )
                switchon()
        end
    end
end

参考文献

2013-07-09 00:55:34