audio.lua 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. --- 模块功能:音频播放
  2. -- @module audio
  3. -- @author 稀饭放姜
  4. -- @license MIT
  5. -- @copyright openLuat
  6. -- @release 2017.10.21
  7. require "common"
  8. require "misc"
  9. module(..., package.seeall)
  10. --- 播放音频文件
  11. -- @string fn ,包含路径的文件名,如果是flash内置路径为"/ldata/"
  12. -- @return boole ,true 播放成功,false,播放失败
  13. -- @usage local let = audio.play("/ldata/call.mp3")
  14. function play(fn)
  15. return audiocore.play(fn)
  16. end
  17. --- 停止播放当前音频文件
  18. -- @return 无
  19. -- @usage audio.stop()
  20. function stop()
  21. audiocore.stop()
  22. end
  23. --- 播放TTS文件
  24. -- @string s,UTF-8格式的字符串,支持中英文
  25. -- @return 无
  26. -- @usage audio.play_utf8_tts("欢迎光临")
  27. function play_utf8_tts(s)
  28. ril.request("AT+QTTS=1")
  29. local str = string.tohex(common.utf8toucs2(s))
  30. ril.request(string.format('AT+QTTS=2,"%s"', str))
  31. end
  32. --- 播放TTS文件
  33. -- @string s,GB2312格式的字符串,支持中英文
  34. -- @return 无
  35. -- @usage audio.play_gb2312_tts("欢迎光临")
  36. function play_gb2312_tts(s)
  37. ril.request("AT+QTTS=1")
  38. local str = string.tohex(common.gb2312toucs2(s))
  39. ril.request(string.format('AT+QTTS=2,"%s"', str))
  40. end
  41. --- 停止播放TTS文件
  42. -- @return 无
  43. -- @usage audio.stop_tts()
  44. function stop_tts()
  45. ril.request("AT+QTTS=3")
  46. ril.request("AT+QTTS=0")
  47. end
  48. --- 设置播放通道
  49. -- @number chan,播放输出通道:audiocore.HANDSET 、 audiocore.EARPIECE 、 audiocore.LOUDSPEAKER 、audiocore.BLUETOOTH 、 audiocore.FM 、 audiocore.FM_LP 、 audiocore.TV 、audiocore.AUX_HANSET 、 audiocore.AUX_LOUDSPEAKER 、audiocore.AUX_EARPIECE 、 audiocore.DUMMY_HANDSET 、audiocore.DUMMY_AUX_HANDSET 、 audiocore.DUMMY_LOUDSPEAKER 、audiocore.DUMMY_AUX_LOUDSPEAKER
  50. -- @return boole , 设置成功返回true,失败返回false
  51. function setChannel(chan)
  52. return audiocore.setchannel(chan)
  53. end
  54. --- 设置音量
  55. -- @number vol,音量值为0-7
  56. -- @return boole , 设置成功返回true,失败返回false
  57. -- @usage audio.setVolume(7)
  58. function setVolume(vol)
  59. return audiocore.setvol(vol)
  60. end
  61. --- 设置麦克音量
  62. -- @number vol,音量值为0-15
  63. -- @return boole , 设置成功返回true,失败返回false
  64. -- @usage audio.setMicVolume(14)
  65. function setMicVolume(vol)
  66. return audiocore.setmicvol(vol)
  67. end
  68. --- TTS播报当前时间
  69. function chime()
  70. local t = misc.getClock()
  71. -- local s = "现在时刻--北京时间: " .. t.hour .. "点 " .. t.min .. "分 " .. t.sec .. "秒 ,,,,今天是阳历--:" .. t.year .. "年 " .. t.month .. "月 " .. t.day .. "号, 星期" .. misc.getWeek()
  72. local s = "现在时刻,北京时间:" .. t.hour .. "点" .. t.min .. "分" .. t.sec .. "秒,今天是阳历:" .. t.year .. "年" .. t.month .. "月" .. t.day .. "号,星期" .. misc.getWeek()
  73. play_utf8_tts(s)
  74. end
  75. setVolume(7)