点击按钮即可测量音量

发布于 2024-11-08 11:40:00 字数 890 浏览 0 评论 0原文

下面是一段在运行时测量音量的代码。我想要一个按钮,当点击一次时,它会启动音量,如这段代码所示,然后当再次点击时,停止测量。

local g = display.newGroup()

local function newBar()
local bar = display.newLine( 0, 0, 1, 0 ) 
bar:setColor( 0, 55, 100, 20 )
bar.width = 7
bar.y=400
bar.x=20
    return bar
end


local volumeBar = newBar()

volumeBar.y =  309
volumeBar.x = 320


function volumeBar:enterFrame ( event )

local v = 20*math.log(r:getTunerVolume())    
local MINTHRESH = 20
local LEFTMARGIN = 20
local ONE = -1
local v2 = MINTHRESH + math.max (v, -MINTHRESH)
v2 = (display.contentWidth - 20 ) * v2 / MINTHRESH
local neg =  math.max ( 20, v2 )
volumeBar.xScale =  neg * ONE
if (v >= -4) then
    volumeBar:setColor( 110,  110, 20, 200 )

elseif (v < -4) then

volumeBar:setColor( 235,  80, 80, 233)

end 

end

Runtime:addEventListener("enterFrame", volumeBar)

g:insert(volumeBar)

请帮忙,因为这里需要点击 2 次。

Hey below is a code that measure volume at runtime. I want a button which when tapped once starts volume as in this code and then when tapped again stops measuring.

local g = display.newGroup()

local function newBar()
local bar = display.newLine( 0, 0, 1, 0 ) 
bar:setColor( 0, 55, 100, 20 )
bar.width = 7
bar.y=400
bar.x=20
    return bar
end


local volumeBar = newBar()

volumeBar.y =  309
volumeBar.x = 320


function volumeBar:enterFrame ( event )

local v = 20*math.log(r:getTunerVolume())    
local MINTHRESH = 20
local LEFTMARGIN = 20
local ONE = -1
local v2 = MINTHRESH + math.max (v, -MINTHRESH)
v2 = (display.contentWidth - 20 ) * v2 / MINTHRESH
local neg =  math.max ( 20, v2 )
volumeBar.xScale =  neg * ONE
if (v >= -4) then
    volumeBar:setColor( 110,  110, 20, 200 )

elseif (v < -4) then

volumeBar:setColor( 235,  80, 80, 233)

end 

end

Runtime:addEventListener("enterFrame", volumeBar)

g:insert(volumeBar)

Help please cause here there are 2 taps that need to be done.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千柳 2024-11-15 11:40:00

为按钮添加点击事件监听器,并在点击函数中调用 Runtime:removeEventListener("enterFrame",volumeBar)。

Add a tap event listener to the button and call Runtime:removeEventListener("enterFrame", volumeBar) in the tap function.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文