梁健 6 месяцев назад
Родитель
Сommit
8029ef1e48

+ 2 - 2
module/Air8000/demo/audio/exaudio.lua

@@ -378,12 +378,12 @@ end
 
 -- 模块接口:检查播放是否结束
 function exaudio.is_end()
-    return audio.isEnd()
+    return audio.isEnd(MULTIMEDIA_ID)
 end
 
 -- 模块接口:获取错误信息
 function exaudio.get_error()
-    return audio.getError()
+    return audio.getError(MULTIMEDIA_ID)
 end
 
 -- 模块接口:开始录音

+ 8 - 5
module/Air8000/demo/audio/play_file.lua

@@ -7,12 +7,14 @@ local audio_setup_param ={
     pa_ctrl = 162,         -- 音频放大器电源控制管脚
     dac_ctrl = 164,        --  音频编解码芯片电源控制管脚    
 }
+
 local function play_end(event)
     if event == exaudio.PLAY_DONE then
-        log.info("播放完成")
-        exaudio.play_stop()
+        log.info("播放完成",exaudio.is_end())
     end
-end 
+end
+
+
 local audio_play_param ={
     type= 0,                -- 播放类型,有0,播放文件,1.播放tts 2. 流式播放
                             -- 如果是播放文件,支持mp3,amr,wav格式
@@ -32,7 +34,7 @@ local function stop_audio()
 end
 --按下boot 停止播放
 gpio.setup(0, stop_audio, gpio.PULLDOWN, gpio.RISING)
-gpio.debounce(0, 200, 1)
+gpio.debounce(0, 200, 1) -- 防抖,防止频繁触发
 
 ---------------------------------
 ---通过POWERKEY按键进行音频切换---
@@ -45,7 +47,8 @@ end
 
 --按下powerkey 打断播放,播放优先级更高的音频
 gpio.setup(gpio.PWR_KEY, next_audio, gpio.PULLUP, gpio.FALLING)
-gpio.debounce(gpio.PWR_KEY, 200, 1)
+gpio.debounce(gpio.PWR_KEY, 200, 1) -- 防抖,防止频繁触发
+
 
 ---------------------------------
 ---------------主task------------

+ 30 - 1
module/Air8000/demo/audio/play_stream.lua

@@ -16,7 +16,7 @@ end
 
 local function play_end(event)
     if event == exaudio.PLAY_DONE then
-        log.info("播放完成")
+        log.info("播放完成",exaudio.is_end())
         if f then 
             return   f:close()
         end
@@ -37,7 +37,36 @@ local audio_play_param ={
     signed_or_Unsigned = true  -- PCM 的数据是否有符号,仅为流式播放起作用
 }
 
+---------------------------------
+---通过BOOT 按键增大音量---
+---------------------------------
+local volume_number = 50 
+local function add_volume()
+    volume_number = volume_number + 20
+    log.info("增大音量",volume_number)
+    exaudio.vol(volume_number)
+end
+--按下boot 停止播放
+gpio.setup(0, add_volume, gpio.PULLDOWN, gpio.RISING)
+gpio.debounce(0, 200, 1)
+
+---------------------------------
+---通过POWERKEY按键减小音量---
+---------------------------------
+
+local function down_volume()
+    volume_number = volume_number - 15
+    log.info("减小音量",volume_number)
+    exaudio.vol(volume_number)
+end
+
+gpio.setup(gpio.PWR_KEY, down_volume, gpio.PULLUP, gpio.FALLING)
+gpio.debounce(gpio.PWR_KEY, 200, 1)   -- 防抖,防止频繁触发
+
 
+---------------------------------
+---通过主task---
+---------------------------------
 local taskName = "task_audio"
 local function audio_task()
     log.info("开始流式播报")

+ 5 - 3
module/Air8000/demo/audio/play_tts.lua

@@ -7,12 +7,14 @@ local audio_setup_param ={
     pa_ctrl = 162,         -- 音频放大器电源控制管脚
     dac_ctrl = 164,        --  音频编解码芯片电源控制管脚    
 }
+
 local function play_end(event)
     if event == exaudio.PLAY_DONE then
-        log.info("播放完成")
+        log.info("播放完成",exaudio.is_end())
         exaudio.play_stop()
     end
 end 
+
 local audio_play_param ={
     type= 1,                -- 播放类型,有0,播放文件,1.播放tts 2. 流式播放
                             -- 如果是播放文件,支持mp3,amr,wav格式
@@ -45,7 +47,8 @@ end
 
 --按下powerkey 打断播放,播放优先级更高的音频
 gpio.setup(gpio.PWR_KEY, next_audio, gpio.PULLUP, gpio.FALLING)
-gpio.debounce(gpio.PWR_KEY, 200, 1)
+gpio.debounce(gpio.PWR_KEY, 200, 1)  -- 防抖,防止频繁触发
+
 
 ---------------------------------------------------------------------------------------------------
 ---------------主task------------------------------------------------------------------------------
@@ -62,7 +65,6 @@ local function audio_task()
         while true do
             local msg = sys.waitMsg(taskName, MSG_KEY_PRESS)   -- 等待按键触发
             if msg[2] ==  "NEXT_AUDIO" then      
-                
                 if index_number %5 == 0 then     --  切换播报音色
                     audio_path = "[m51]支付宝到账,1千万元"   -- 女声1
                 elseif index_number %5 == 1 then

+ 27 - 1
module/Air8000/demo/audio/record_file.lua

@@ -11,7 +11,6 @@ local recordPath = "/record.amr"
 
 local function record_end(event)
     if event == exaudio.RECORD_DONE then
-        log.info("录音完成")
         log.info("录音后文件大小",io.fileSize(recordPath))
     end
 end 
@@ -26,6 +25,33 @@ local audio_record_param ={
 }
 
 
+---------------------------------
+---通过BOOT 按键增大录音---
+---------------------------------
+local volume_number = 50 
+local function add_volume()
+    volume_number = volume_number + 20
+    log.info("增大录音音量",volume_number)
+    exaudio.mic_vol(volume_number)
+end
+--按下boot 停止播放
+gpio.setup(0, add_volume, gpio.PULLDOWN, gpio.RISING)
+gpio.debounce(0, 200, 1)
+
+---------------------------------
+---通过POWERKEY按键减小录音---
+---------------------------------
+
+local function down_volume()
+    volume_number = volume_number - 15
+    log.info("减小录音音量",volume_number)
+    exaudio.mic_vol(volume_number)
+end
+
+gpio.setup(gpio.PWR_KEY, down_volume, gpio.PULLUP, gpio.FALLING)
+gpio.debounce(gpio.PWR_KEY, 200, 1)   -- 防抖,防止频繁触发
+
+
 
 local taskName = "task_audio"
 local function audio_task()