require "audio" module ..., package.seeall --后面的打断前面的 audio.setStrategy 1 --立即播放声音 --file 声音文件 --fnc 回调 music = (file,fnc = (-> sys.publish "AUDIO_PLAY_DONE"),vol = 7) -> return if vol == 0 audio.play 0,"FILE",file,vol,fnc --立即播放tts tts = (text,fnc = (-> sys.publish "AUDIO_PLAY_DONE"),vol = 7) -> return if vol == 0 audio.play 0,"TTS",text,vol,fnc --待播放队列 reportTemp = {} --插入待播放的内容到队列 --t 类型tts或file --d 数据内容,tts内容或文件路径 --v 音量0-7,默认7 export play = (t,d,v) -> log.info "add audio",t,d,v table.insert reportTemp,{:t,:d,:v} sys.publish "REPORT_AUDIO" musicWait = (d) -> log.info "play audio",d.t,d.d,d.v return if not d.v or d.v == 0 waitSign = "AUDIO_PLAY_DONE#{os.time!}" p = {:tts, file: music} if d.t and p[d.t] p[d.t] d.d,(->sys.publish waitSign),d.v sys.waitUntil waitSign,10000 sys.taskInit -> while true sys.waitUntil "REPORT_AUDIO" while #reportTemp > 0 d = table.remove reportTemp,1 musicWait d --测试功能: --读“测试”,音量5 play "tts","测试",5 --读“音量”,音量7 play "tts","默认音量" --播放文件,要提前准备好文件,音量7 play "file","/ldata/test.mp3" --执行完后会按顺序播放