Corona SDK 设置 native.newVideo() 的音量?

如何在native.newVideo()播放期间更改音量级别?

这并不起作用:

local function onKeyEvent( event )
local keyname = event.keyName;
if (keyname=="back" and event.phase == "up") then
    if _G.__isOverlay == true then
        storyboard.hideOverlay("slideDown")
    elseif storyboard.getCurrentSceneName() == "screen3" and (tableState == "info") then
        goBack()
    else
        native.requestExit()
    end
end

if ( keyname == "volumeUp" and event.phase == "down" ) then
    local masterVolume = audio.getVolume()
    --native.showAlert( "volume:", masterVolume, {"Ok"} )
    if ( masterVolume < 1.0 ) then
        masterVolume = masterVolume + 0.1
        audio.setVolume( masterVolume )
    end
    return true
elseif ( keyname == "volumeDown" and event.phase == "down" ) then
    local masterVolume = audio.getVolume()
    --native.showAlert( "volume:", masterVolume, {"Ok"} )
    if ( masterVolume > 0.0 ) then
        masterVolume = masterVolume - 0.1
        audio.setVolume( masterVolume )
    end
    return true
end

return true
end

if system.getInfo( "platformName" ) == "Android" then
    Runtime:addEventListener( "key", onKeyEvent )
end
点赞
用户2895078
用户2895078

实际上,当你使用audio.setVolume时,也可以将特定的通道作为参数传递。

我认为native.newVideo()可能不会使用主音量控制,而实际上可能会使用特定的信道。

在你的情况下,你可以尝试使用audio.setVolume(masterVolume,0),这将影响所有可能的信道(1到32)。

如果它起作用,你应该用这段代码来调试,找出实际的信道:

for i=1, 32 do
    print('channel '..i..' is '..audio.isChannelActive(i))
end

然后,如果你找到了该信道,就可以使用audio.setVolume(masterVolume,channelNumber)来处理视频信道:)

干杯!

2014-03-27 23:51:42