Timer lua定时声音文件
我是一个试图为吉他手写一个音乐阅读节目的音乐家。 我想对两个连续的声音计时,以便第一个声音在第二个声音开始时停止。每个都应持续预定的持续时间(在本例中定义为60000/72中的72)。作为一名初学者,我正在努力,非常感谢任何帮助Timer lua定时声音文件,timer,lua,coronasdk,duration,Timer,Lua,Coronasdk,Duration,我是一个试图为吉他手写一个音乐阅读节目的音乐家。 我想对两个连续的声音计时,以便第一个声音在第二个声音开始时停止。每个都应持续预定的持续时间(在本例中定义为60000/72中的72)。作为一名初学者,我正在努力,非常感谢任何帮助 -- AUDIO 1 -- local aa = audio.loadStream(sounds/chord1.mp3) audio.play(aa) -- TIMER 1 -- local timeLimit = 1 local
-- AUDIO 1 --
local aa = audio.loadStream(sounds/chord1.mp3)
audio.play(aa)
-- TIMER 1 --
local timeLimit = 1
local function timerDown()
timeLimit = timeLimit-1
if(timeLimit==0)then
end
end
timer.performWithDelay( 60000/72, timerDown, timeLimit )
-- TIMER 2 --
local timeLimit = 1
local function timerDown()
timeLimit = timeLimit-1
if(timeLimit==0)then
-- AUDIO 2 --
local aa = audio.loadStream(sounds/chord2.mp3])
audio.play(aa)
end
end
timer.performWithDelay( 60000/72, timerDown, timeLimit )
这里有几件事需要注意。对不起,这是文字墙 字符串(文本) 必须用引号括起来
local aa = audio.loadStream(sounds/chord1.mp3)
变成:
local aa = audio.loadStream('sounds/chord1.mp3')
-- Might be slight overkill but hopefully you get the idea!
local beatsToPlay = 10
local beatsPerMinute = 72
local millisPerMinute = 60 * 1000
local playTimeMinutes = beatsToPlay / beatsPerMinute
local playTimeMillis = playTimeMinutes * millisPerMinute
timer.performWithDelay(playTimeMillis, timerDown, timeLimit)
幻数
应该避免在任何地方都没有解释的值。它们使代码更难理解,也更难维护或修改
timer.performWithDelay(60000/72, timerDown, timeLimit)
变成:
local aa = audio.loadStream('sounds/chord1.mp3')
-- Might be slight overkill but hopefully you get the idea!
local beatsToPlay = 10
local beatsPerMinute = 72
local millisPerMinute = 60 * 1000
local playTimeMinutes = beatsToPlay / beatsPerMinute
local playTimeMillis = playTimeMinutes * millisPerMinute
timer.performWithDelay(playTimeMillis, timerDown, timeLimit)
科罗纳API
在编程时,能够阅读和理解文档是一项非常宝贵的技能。科罗纳的API已记录在案
audio.loadStream()
的文档告诉您,它返回一个音频句柄,您可以使用该句柄播放您已经拥有的声音。它还提醒您,完成后应该处理句柄,因此需要将其添加到中
timer.performWithDelay()
的文档告诉您它需要以毫秒为单位的延迟时间和一个监听器,该监听器将在该时间被激活,因此您需要编写一个具有某种描述的监听器。如果您遵循到listener的链接,或者查看页面后面的示例,那么您将看到一个简单的函数就足够了
audio.play()
现在就可以了,但是如果你阅读了文档,它会告诉你更多的功能,你可以利用这些功能。即选项
参数,包括持续时间
和完成时间
<代码>持续时间是播放声音的时间(以毫秒为单位)onComplete
是一个监听器,当声音播放完毕时将触发该监听器
结果
仅使用计时器:
使用onComplete
:
您可能会发现,使用
onComplete
比使用纯计时器效果更好,因为您可能会在播放之前处理音频句柄(并导致错误)。我对Corona没有任何经验,因此我不确定它的计时器或音频库有多强大。问题是…?您应该清理示例代码。使用适当的注释和缩进。然后更简洁地描述出哪里出了问题,以及您的期望。还可以添加任何用作标记的库。(corona
?)您需要在文件路径周围加上引号:例如“sounds/chord1.mp3”
谢谢您的时间。我会努力的。非常感谢你的回答——非常全面。@julianLE3如果你对答案感到满意,请你把它标记为?谢谢