Corona sdk允许设备音量控制

时间:2012-08-28 02:28:02

标签: android sdk controls corona volume

我在Corona sdk游戏中使用运行时监听器,它可以工作,但我真正感兴趣的是让我的游戏不会干扰用户通过使用硬件音量控制在他们的机器人手机或平板电脑上设置音量在他们的设备上。我在Corona Labs网站上找不到任何东西。谢谢你的任何建议。

2 个答案:

答案 0 :(得分:3)

这件事发生在我身上,这是因为我使用了事件监听器“key”

要解决这个问题,你需要返回FALSE,除了你正在处理的键,当一个“key”监听器返回true时,它意味着:“我用那个键做了一些事情,所以操作系统应该忽略它”,当它返回false,表示:“我没有使用该键,因此操作系统应该处理它”

那么,为什么你不能设置音量?这是因为你正在某处捕获“key”事件,并且当按下的键是第一个时不返回false(最简单的方法是返回“true”表示你想要的东西,而“false”表示其他所有东西)。

当我遇到这个问题时,我有这个代码:

local downPress = false
function onBackButtonPressed(e)
    if (e.phase == "down" and e.keyName == "back") then
        downPress = true
    else
        if (e.phase == "up" and e.keyName == "back" and downPress) then
            storyboard.gotoScene( LastScene , "fade", 200 );
            Runtime:removeEventListener( "key", onBackButtonPressed );
        end
    end
end

它可以正常工作,但阻止了音量键。 请注意,它上面没有“返回”声明。

现在的代码是:

local downPress = false
function onBackButtonPressed(e)
    if (e.phase == "down" and e.keyName == "back") then
        downPress = true
        return true
    else
        if (e.phase == "up" and e.keyName == "back" and downPress) then
            storyboard.gotoScene( LastScene , "fade", 200 );
            Runtime:removeEventListener( "key", onBackButtonPressed );
            return true
        end
    end
    return false; --THE LINE YOU REALLY NEED IS THIS ONE!!!
end

所以我所做的只有当按下后退键时才返回true(我的意图是当按下后退键时阻止应用程序退出,这可能是你想要的)并且返回其他所有内容的假(包含的音量键!)

答案 1 :(得分:0)

如果您有这样的运行时监听器(用于返回android中的后退硬按钮):

Runtime:addEventListener( "key", handleBackButton )

请记住在侦听器的末尾添加“return true”。

local function handleBackButton( event)
    if (event.phase == "down") and (event.keyName =="back") then
        -- your code for going back
        return true
    end
end

请记住,运行时侦听器是全局的,您只需要注册一次侦听器,并且还记得在不再使用时删除侦听器。

希望这会有所帮助。 干杯!