audio_drv.lua 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. --[[
  2. @module audio_drv
  3. @summary 音频设备管理模块,负责音频设备的初始化和控制(仅使用exaudio扩展库)
  4. @version 2.0
  5. @date 2025.10.23
  6. @author 陈媛媛
  7. @usage
  8. 本模块提供以下功能:
  9. 1、定义所有硬件引脚常量
  10. 2、使用exaudio扩展库初始化音频设备
  11. ]]
  12. -- 引入exaudio库
  13. local exaudio = require("exaudio")
  14. -- exaudio配置参数
  15. local audio_configs = {
  16. model = "es8311", -- dac类型: "es8311"
  17. i2c_id = 1, -- i2c_id: 可填入0,1 并使用pins 工具配置对应的管脚
  18. pa_ctrl = 26, -- 音频放大器电源控制管脚
  19. dac_ctrl = 2, -- 音频编解码芯片电源控制管脚
  20. dac_delay = 3, -- DAC启动前冗余时间(单位100ms)
  21. pa_delay = 100, -- DAC启动后延迟打开PA的时间(单位1ms)
  22. dac_time_delay = 100, -- 播放完毕后PA与DAC关闭间隔(单位1ms)
  23. bits_per_sample = 16, -- 采样位深
  24. pa_on_level = 1 -- PA打开电平 1:高 0:低
  25. }
  26. exaudio.vol(70) -- 喇叭音量
  27. exaudio.mic_vol(65) -- 麦克风音量
  28. -- 初始化音频设备
  29. local function initAudioDevice()
  30. -- 使用exaudio.setup统一配置音频设备
  31. log.info("audio_drv", "使用exaudio.setup初始化音频设备")
  32. if exaudio.setup(audio_configs) then
  33. log.info("audio_drv", "exaudio.setup初始化成功")
  34. else
  35. log.error("audio_drv", "exaudio.setup初始化失败")
  36. return false
  37. end
  38. -- log.info("audio_drv", "Audio device initialized using exaudio only")
  39. return true
  40. end
  41. -- 获取音频通道ID(保留用于兼容性)
  42. local function getMultimediaId()
  43. return 0 -- 返回默认值0
  44. end
  45. -- 导出接口
  46. return {
  47. initAudioDevice = initAudioDevice,
  48. getMultimediaId = getMultimediaId
  49. }