| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- --- 模块功能:录音功能测试.
- -- @author openLuat
- -- @module record.testRecord
- -- @license MIT
- -- @copyright openLuat
- -- @release 2018.03.27
- module(...,package.seeall)
- require"record"
- require"audio"
- --每次读取的录音文件长度
- local RCD_READ_UNIT = 1024
- --rcdoffset:当前读取的录音文件内容起始位置
- --rcdsize:录音文件总长度
- --rcdcnt:当前需要读取多少次录音文件,才能全部读取
- local rcdoffset,rcdsize,rcdcnt
- --设置为spk播放,耳机mic输入
- --audio.setChannel(2, 3)
- --设置录音时mic增益为7级
- --audio.setMicGain("record",7)
- --[[
- 函数名:playcb
- 功能 :播放录音结束后的回调函数
- 参数 :无
- 返回值:无
- ]]
- local function playcb(r)
- log.info("testRecord.playcb",r)
- --删除录音文件
- record.delete()
- record.start(5,rcdcb)
- sys.timerStart(record.stop,3000)
- end
- --[[
- 函数名:readrcd
- 功能 :读取录音文件内容
- 参数 :无
- 返回值:无
- ]]
- local function readrcd()
- local s = record.getData(rcdoffset,RCD_READ_UNIT)
- log.info("testRecord.readrcd",rcdoffset,rcdcnt,string.len(s))
- rcdcnt = rcdcnt-1
- --录音文件内容已经全部读取出来
- if rcdcnt<=0 then
- sys.timerStop(readrcd)
- --播放录音内容
- audio.play(0,"FILE",record.getFilePath(),7,playcb)
- --还没有全部读取出来
- else
- rcdoffset = rcdoffset+RCD_READ_UNIT
- end
- end
- --[[
- 函数名:rcdcb
- 功能 :录音结束后的回调函数
- 参数 :
- result:录音结果,true表示成功,false或者nil表示失败
- size:number类型,录音文件的大小,单位是字节,在result为true时才有意义
- 返回值:无
- ]]
- function rcdcb(result,size)
- log.info("testRecord.rcdcb",result,size)
- if result then
- rcdoffset,rcdsize,rcdcnt = 0,size,(size-1)/RCD_READ_UNIT+1
- sys.timerLoopStart(readrcd,1000)
- end
- end
- --5秒后,开始录音
- sys.timerStart(record.start,5000,5,rcdcb)
|