类型 函数 库 audio.* 返回值 数字 修订版本 版本 2024.3703 关键词 audio, play, sound, music(音频,播放,声音,音乐) 另请参阅 audio.pause() audio.loadSound() audio.loadStream()
在通道上播放由音频句柄指定的音频。如果未明确指定通道,将自动为您选择一个可用通道。
此函数返回音频播放的通道号,如果音频无法播放,则返回 `0`。
目前我们支持 32 个通道。您不能在当前处于活动状态(暂停或播放)的通道上播放新音频。
audio.play( audioHandle [, options ] )
对象. 这是您要播放的音频数据(由 audio.loadSound() 和 audio.loadStream() 返回)。
表. 播放的附加选项 — 有关详细信息,请参阅下一节。
`options` 表允许您指定播放的附加选项。
local options = { channel = 1, loops = -1, duration = 30000, fadein = 5000, onComplete = callbackListener }
数字. 您要在其上播放的通道号。有效通道为 `1` 到最大通道数(目前为 32)。指定 `0` 或省略此参数将自动为您选择一个通道。
数字. 您希望音频循环播放的次数。`0` 表示音频将循环 0 次(声音将播放一次且不循环)。`1` 表示音频将播放一次并循环一次,这意味着您将听到该声音共 2 次。传递 `-1` 将告诉系统无限循环播放样本。
数字. 以毫秒为单位,这将导致系统播放音频指定的时间量,然后自动停止播放,无论音频是否已完成。
数字. 以毫秒为单位,这将导致系统以最小通道音量开始播放声音,并在指定的毫秒数内线性上升到正常通道音量。
监听器. 您希望在播放结束时调用的回调函数。`onComplete` 回调函数将传回一个具有以下属性的事件表
-- Completion listener function local function narrationFinished( event ) print( "Narration Finished on channel", event.channel ) if ( event.completed ) then print( "Narration completed playback naturally" ) else print( "Narration was stopped before completion" ) end end -- Load two audio streams and one sound local backgroundMusic = audio.loadStream( "backgroundMusic.m4a" ) local narrationSpeech = audio.loadStream( "narrationSpeech.wav" ) local laserSound = audio.loadSound( "laserBlast.wav" ) -- Play the background music on channel 1, loop infinitely, and fade in over 5 seconds local backgroundMusicChannel = audio.play( backgroundMusic, { channel=1, loops=-1, fadein=5000 } ) -- Play the speech on any available channel, for 30 seconds at most, and invoke listener function when audio finishes local narrationChannel = audio.play( narrationSpeech, { duration=30000, onComplete=narrationFinished } ) -- Play the laser on any available channel local laserChannel = audio.play( laserSound )