跳转至

audio - 音频播放

适用范围

层面 说明
运行环境 LuatOS-Air 脚本框架,展锐 8910 平台(Air724UG / Air722UG / Air795UG / Air720UH 等)
前提条件 需音频 codec 与喇叭,且固件带音频驱动
接口差异 audio.play 的 type 只支持 "FILE" 与 "TTS" 两种音源
不适用 Air780E 及以后跑 LuatOS 的 Cat.1 模组;这些模组的同名库在 osapi 里是另一套接口,不能照抄

支持MP3、amr文件播放;

支持本地TTS播放、通话中TTS播放到对端(需要使用支持TTS功能的core软件)

audio.play(priority, type, path, vol, cbFnc, dup, dupInterval)

播放音频

参数

名称 传入值类型 释义
priority number 音频优先级,数值越大,优先级越高
优先级高的播放请求会终止优先级低的播放
相同优先级的播放请求,播放策略参考:audio.setStrategy接口
type string 音频类型,目前仅支持"FILE"、"TTS"
path string 音频文件路径,跟typ有关
typ为"FILE"时:表示音频文件路径
typ为"TTS"时:表示要播放的UTF8编码格式的数据
vol number 可选参数,默认为4 播放音量,取值范围0到7,0为静音
cbFnc function 可选参数,默认为nil 音频播放结束时的回调函数,回调函数的调用形式如下:
cbFnc(result)
result表示播放结果:
0-播放成功结束;
1-播放出错
2-播放优先级不够,没有播放
3-传入的参数出错,没有播放
4-被新的播放请求中止
5-调用audio.stop接口主动停止
dup bool 可选参数,默认为nil 是否循环播放,true循环,false或者nil不循环
dupInterval number 可选参数,默认为0 循环播放间隔(单位毫秒),dup为true时,此值才有意义

返回值

result,bool或者nil类型,同步调用成功返回true,否则返回false

例子

audio.play(0,"FILE","/lua/call.mp3")
audio.play(0,"FILE","/lua/call.mp3",7)
audio.play(0,"FILE","/lua/call.mp3",7,cbFnc)
-- 更多用法参考demo/audio/testAudio.lua

audio.stop(cbFnc)

停止音频播放

参数

名称 传入值类型 释义
cbFnc function 可选参数,默认为nil 停止音频播放的回调函数(停止结果通过此函数通知用户),回调函数的调用形式为:
cbFnc(result)
result:number类型
0表示停止成功

返回值

nil

例子

audio.stop()

audio.setVolume(vol)

设置喇叭音量等级

参数

名称 传入值类型 释义
vol number 音量值为0-7,0为静音

返回值

bool result,设置成功返回true,失败返回false

例子

audio.setVolume(7)

audio.setCallVolume(vol)

设置通话音量等级

参数

名称 传入值类型 释义
vol number 音量值为0-7,0为静音

返回值

bool result,设置成功返回true,失败返回false

例子

audio.setCallVolume(7)

audio.setMicGain(mode, level)

设置mic增益等级

通话时mic增益在通话建立成功之后设置才有效
录音mic增益设置后实时生效

参数

名称 传入值类型 释义
mode string 增益类型
"call"表示通话中mic增益
"record"表示录音mic增益
level number 增益等级,取值为0-7

返回值

bool result,设置成功返回true,失败返回false

例子

audio.setMicGain("record",7),设置录音时mic增益为7级

audio.getVolume()

获取喇叭音量等级

参数

无

返回值

number vol,喇叭音量等级

例子

audio.getVolume()

audio.getCallVolume()

获取通话音量等级

参数

无

返回值

number vol,通话音量等级

例子

audio.getCallVolume()

audio.setStrategy(strategy)

设置优先级相同时的播放策略

参数

名称 传入值类型 释义
strategy number 优先级相同时的播放策略;
0:表示继续播放正在播放的音频,忽略请求播放的新音频
1:表示停止正在播放的音频,播放请求播放的新音频

返回值

nil

例子

audio.setStrategy(0)
audio.setStrategy(1)

audio.setTTSSpeed(speed)

设置TTS朗读速度

参数

名称 传入值类型 释义
speed number 速度范围为0-100,默认50

返回值

bool result,设置成功返回true,失败返回false

例子

audio.setTTSSpeed(70)

audio.setChannel(output, input)

设置音频输入、输出通道

设置后实时生效

参数

名称 传入值类型 释义
output number 可选参数,默认为2 0:earphone听筒,1:headphone耳机,2:speaker喇叭
input number 可选参数,默认为0 0:主mic,3:耳机mic

返回值

nil

例子

-- 设置为听筒输出:audio.setChannel(0)
-- 设置为耳机输出:audio.setChannel(1)
-- 设置为喇叭输出:audio.setChannel(2)
-- 设置为喇叭输出、耳机mic输入:audio.setChannel(2,3)

搜索